ARDUINO Проблема с датчиком DHT22

#1
В общем подсоеденил датчик к цифровому пину. Использую библиотеку DHT.h
Датчик объявил. Саму адруино и датчик запитал от аккумулятора 18650. Заряд 4.2-3.7 при тестах. Когда делаю чтение DTH.readTemperature() то он выводит старые показания, которые были когда я обращался к нему в последний раз. Если ещё раз чтение сделать, то показания обновляются. В чем может быть причина?
 
#3
@Патрушев Артём, вроде как, их нельзя опрашивать слишком часто
Не важно. Я допустим делал так, опрос идёт при нажатии на кнопку. Измерял температуру дома, вносил датчик на улицу и через минуту нажимал кнопку, показания были !!!старые!!! Ещё раз нажимал и видел температуру на улице. Как это можно пофиксить?
 
#5
Вот код, самое простое. Берем нажимаем на кнопку в порт выводятся показания, дышим на датчик секунд 10, нажимаем на кнопку и выводятся те-же показания что и первый раз, тут же нажимаем еще раз и о чудо! Показания поменялись на актуальные. Кто знает как пофиксить?
#include <DHT.h>
#define DHTINPIN 5
#define DHTTYPE DHT22
DHT DHTIN(DHTINPIN, DHT22);

boolean flag;

void setup() {
pinMode(3, INPUT_PULLUP); //пин для прерывания
attachInterrupt(1,myInterrupt, RISING); // устанавливаем прерывание
DHTIN.begin();
Serial.begin(9600);
}

void loop() {
if (flag) {// если было прерывание то отображаем данные
DisplayAll();
flag = 0;
}
}

void DisplayAll() {
Serial.println(DHTIN.readTemperature());
}

void myInterrupt() {
if (!flag) flag = 1; // флаг первого нажатия кнопки
}
 
#6
Смотрите, наглядный эксперимент, просто скопировал данные из COM порта + у меня модуль времени еще там подцеплен, время оттуда и не зависит от ардуино:
14:29:25 34.00
14:34:10 3.50
14:34:21 3.80
14:34:49 4.90
14:34:50 4.90
14:34:52 37.70
14:29:25 - я нагревал датчик феном. Потом отсоединил его и отнес в морозилку на 5 минут. После включения в 14:34:10 показал вроде правильную температуру, опрасил его несколько раз, убедился что растет. Но вот тут в 14:34:21 я начал нагревать датчик феном, после отключения фена я нажал на кнопку в 14:34:49 и что я вижу? Вижу бред, датчик должен быть горячим!, Жму еще раз 14:34:50 опять бред, но это ладно, типа датчик нельзя опрашивать более раза в 2 секунды и только после третьего нажатия в 14:34:52 я вижу адекватные показания. Как такое можно пофиксить? Как получать актуальные показания реального времени с этого датчика?
Потому как я делаю метеостанцию и у меня получается следующая история: допустим вечером я посмотрел температуру, считал показания, посмотрел. За ночь бахнул мороз с -20 до -40. Но утром я нажимая на кнопку вижу те же -20 ГРЕБАНЫХ ГРАДУСОВ! Хотя на улице -40. И чтобы увидеть -40 мне нужно нажать еще раз или типа того, я не понимаю?!?!?

Ниже скетч с библиотеками
 

Вложения

#7
Походу идей нет, буду заказывать другие датчики температуры, эти вообще никуда не годятся, разве что для знакомства с электроникой. Очень не рекомендую к покупке.