Страница 1 из 1

Проблема с настройкой DHT22

Добавлено: 27.01.2016{, 10:22}
Allex901
Добрый день!
Гуру, помогите разобраться с DHT22. Есть задача - вывод на экран №1 показаний времени; на экран №2 - температуры и влажности. На часах настроено мигающее двоеточие секунд с частотой мигания 1 раз в секунду.
Проблема - если в настройках DHT22 установить опрос датчика каждую секунду, то мигающее двоеточие секунд мигает в два раза реже, т.е. раз в 2 секунды; а также переключение между экранами дисплея становится некомфортным - если кнопка переключения экранов Кн1 нажимается в момент опроса датчика, ардуинка на нажатие кнопки не реагирует.
Второй момент не проблема - его видимо, легко решить, добавив таймер TOF на Кн1, а вот с неправильным миганием двоеточия справится не могу.
В принципе, частый опрос DHT22 не требуется, достаточно было бы и раз в 30-60 секунд. Но тогда требуется получить актуальные данные с него по событию - например, по нажатию кнопки Кн2. Пробую, подключаю Кн2 к входу разрешения опроса DHT22. В настройках DHT22 оставляю опрос раз в секунду, и как я понимаю, пока Кн2 не нажата, опроса быть не должно. И здесь для меня сюрприз - не смотря на ненажатую кнопку Кн2, двоеточие мигает также с частотой раз в 2 секунды, что указывает на то, что датчик все равно опрашивается (и "подвешивает" ардуинку). Если я в DHT22 настраиваю опрос раз в 30 секунд, ситуация такая - двоеточие секунд работает с нужной частотой 1Hz, но нажатие Кн2 не приводит к актуализации показаний с DHT22. Как можно решить эту проблему?

Проблема с настройкой DHT22

Добавлено: 27.01.2016{, 10:41}
Олег
Вы физически используете один дисплей, а зачем в схеме стоит два?
С кнопкой у вас происходит следующее. В Настройках входа у вас включен подтягивающий резистор, то-есть пока кнопка не нажата у вас на входе датчика висит высокий уровень, при нажатии появляется низкий. Инвертируйте выход кнопки.

Проблема с настройкой DHT22

Добавлено: 27.01.2016{, 11:54}
Allex901
Второй дисплей в схеме установлен ошибочно, а с кнопкой это я сморозил;) Спасибо, теперь все работает так, как нужно.

Правильно ли я понимаю, что если мне требуется настроить, чтобы данные с DHT22  на дисплее актуализировались раз в 60 секунд или при нажатии кнопки Кн2, то существует один вариант: в настройках DHT22 настраиваем обновление раз в секунду, а внешними генератором подавать положительный импульс продолжительностью 1000 мс на вход En DHT22 раз в 60 секунд, а также на этот же вход завести Кн2, скажем, с таймером TOF на 1000 мс?
PS Тайминг в секунду указал для примера

Проблема с настройкой DHT22

Добавлено: 27.01.2016{, 13:50}
Олег
Не пробовал, но по-логике так и должно быть.

Проблема с настройкой DHT22

Добавлено: 27.01.2016{, 14:02}
Allex901
Спасибо, разобрался с Вашей помощью.

Проблема с настройкой DHT22

Добавлено: 25.11.2016{, 21:52}
OlegAn1962
НовыйUser писал(а):далее на схемах просто блоком суммирования чисел подтягивается недостающий проценты к датчикам чтобы все показывали единый результат.
А откуда у вас такая уверенность, что ошибка будет линейна во всём диапазоне?

Проблема с настройкой DHT22

Добавлено: 08.02.2017{, 19:21}
Boroda
Не стану создавать новую тему.
Вопрос Сергею (разработчику):
Вставляю стандартный блок DHT22 на третью плату.

В начале секции loop() перед кодом первой платы вставляется код

Код: Выделить всё

float tempDht2;
tempDht2 = _dht1.readTemperature();
if (!(isnan(tempDht2))){_dht1t=tempDht2; }
tempDht2 = _dht1.readHumidity();
if (!(isnan(tempDht2))){_dht1h=tempDht2; }
а вот код на третьей плате выглядит так:

Код: Выделить всё

in_162745127_1 = (int(_dht1t));
....
in_162745127_2 = (int(_dht1h));
...
Смысл ставить эти датчики на отдельную плату с условием пропадает, т.к. основная часть кода, которая пожирает время, остается в основном цикле и работа блока корректируется только в его настройках. А можно сделать так: "где блок, там и код"? Я конечно поставил бит разрешения работы платы и этот же бит завел на блок, но как-то не красиво все это.

Проблема с настройкой DHT22

Добавлено: 08.02.2017{, 19:44}
support
Подождите выхода следующей версии. Там этот вопрос решон. Во первых опрос датчика будет происходить на той плате где он установлен, во вторых применена новая библиотека и опрос происходит намного быстрее. Существующий код писался в стародавние времена, когда о работе плат по условию даже и не планировалась.

Проблема с настройкой DHT22

Добавлено: 08.02.2017{, 20:10}
Boroda
Спасибо, Сергей!

Проблема с настройкой DHT22

Добавлено: 28.04.2017{, 11:41}
dim770
Добрый день!
Как можно организовать проверку исправности DHT22 аналогично: "if (isnan(h) || isnan(t) ) "?

Проблема с настройкой DHT22

Добавлено: 02.05.2017{, 11:37}
slavas
dim770, какую проверку исправности? Если датчик не отвечает на экран выводится слово "NAN".

Проблема с настройкой DHT22

Добавлено: 22.05.2017{, 03:33}
fozik
slavas писал(а):Если датчик не отвечает на экран выводится слово "NAN".
Вот у меня вопрос про этот NAN. У меня показания температуры и влажности  с DHT22 сменяются на "NAN". Смотрел решение здесь http://forum.arduino.cc/index.php?topic=335860.0 Пробовал создать пользовательский блок но пока не смог. Подскажите решение этой проблемки. Возможно кто-то создаст такой блок?

Проблема с настройкой DHT22

Добавлено: 22.05.2017{, 10:57}
slavas
fozik, какой датчик ( на плате или нет), кабель,как подключили.
Экстрасенсы устали.