FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Понедельник, 20.11.2017, 20:14
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей, Олег, Anydy 
Форум » Основной » Спросить у знатоков » Проблема с настройкой DHT22
Проблема с настройкой DHT22
Allex901 Дата: Среда, 27.01.2016, 10:22 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Добрый день!
Гуру, помогите разобраться с DHT22. Есть задача - вывод на экран №1 показаний времени; на экран №2 - температуры и влажности. На часах настроено мигающее двоеточие секунд с частотой мигания 1 раз в секунду.
Проблема - если в настройках DHT22 установить опрос датчика каждую секунду, то мигающее двоеточие секунд мигает в два раза реже, т.е. раз в 2 секунды; а также переключение между экранами дисплея становится некомфортным - если кнопка переключения экранов Кн1 нажимается в момент опроса датчика, ардуинка на нажатие кнопки не реагирует.
Второй момент не проблема - его видимо, легко решить, добавив таймер TOF на Кн1, а вот с неправильным миганием двоеточия справится не могу.
В принципе, частый опрос DHT22 не требуется, достаточно было бы и раз в 30-60 секунд. Но тогда требуется получить актуальные данные с него по событию - например, по нажатию кнопки Кн2. Пробую, подключаю Кн2 к входу разрешения опроса DHT22. В настройках DHT22 оставляю опрос раз в секунду, и как я понимаю, пока Кн2 не нажата, опроса быть не должно. И здесь для меня сюрприз - не смотря на ненажатую кнопку Кн2, двоеточие мигает также с частотой раз в 2 секунды, что указывает на то, что датчик все равно опрашивается (и "подвешивает" ардуинку). Если я в DHT22 настраиваю опрос раз в 30 секунд, ситуация такая - двоеточие секунд работает с нужной частотой 1Hz, но нажатие Кн2 не приводит к актуализации показаний с DHT22. Как можно решить эту проблему?
Прикрепления: 8581779.rar(900Kb)


Сообщение отредактировал Allex901 - Среда, 27.01.2016, 10:24
 
Олег Дата: Среда, 27.01.2016, 10:41 | Сообщение # 2
Гуру
Группа: Модераторы
Сообщений: 1005
Награды: 24
Репутация: 17
Статус: Online
Вы физически используете один дисплей, а зачем в схеме стоит два?
С кнопкой у вас происходит следующее. В Настройках входа у вас включен подтягивающий резистор, то-есть пока кнопка не нажата у вас на входе датчика висит высокий уровень, при нажатии появляется низкий. Инвертируйте выход кнопки.


Схемы на ноутбуки

Сообщение отредактировал Олег - Среда, 27.01.2016, 10:48
 
Allex901 Дата: Среда, 27.01.2016, 11:54 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Второй дисплей в схеме установлен ошибочно, а с кнопкой это я сморозил;) Спасибо, теперь все работает так, как нужно.

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


Сообщение отредактировал Allex901 - Среда, 27.01.2016, 12:18
 
Олег Дата: Среда, 27.01.2016, 13:50 | Сообщение # 4
Гуру
Группа: Модераторы
Сообщений: 1005
Награды: 24
Репутация: 17
Статус: Online
Не пробовал, но по-логике так и должно быть.

Схемы на ноутбуки
 
Allex901 Дата: Среда, 27.01.2016, 14:02 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Спасибо, разобрался с Вашей помощью.
 
OlegAn1962 Дата: Пятница, 25.11.2016, 21:52 | Сообщение # 6
Полковник
Группа: Проверенные
Сообщений: 365
Награды: 4
Репутация: 0
Статус: Offline
Цитата НовыйUser ()
далее на схемах просто блоком суммирования чисел подтягивается недостающий проценты к датчикам чтобы все показывали единый результат.
А откуда у вас такая уверенность, что ошибка будет линейна во всём диапазоне?
 
Boroda Дата: Среда, 08.02.2017, 19:21 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 798
Награды: 37
Репутация: 36
Статус: Offline
Не стану создавать новую тему.
Вопрос Сергею (разработчику):
Вставляю стандартный блок 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));
...

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


Сообщение отредактировал Boroda - Среда, 08.02.2017, 19:23
 
support Дата: Среда, 08.02.2017, 19:44 | Сообщение # 8
Автор программы
Группа: Администраторы
Сообщений: 937
Награды: 42
Репутация: 27
Статус: Offline
Подождите выхода следующей версии. Там этот вопрос решон. Во первых опрос датчика будет происходить на той плате где он установлен, во вторых применена новая библиотека и опрос происходит намного быстрее. Существующий код писался в стародавние времена, когда о работе плат по условию даже и не планировалась.

Разработчик программы FLProg
 
Boroda Дата: Среда, 08.02.2017, 20:10 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 798
Награды: 37
Репутация: 36
Статус: Offline
Спасибо, Сергей!
 
dim770 Дата: Пятница, 28.04.2017, 11:41 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 7
Награды: 0
Репутация: 0
Статус: Offline
Добрый день!
Как можно организовать проверку исправности DHT22 аналогично: "if (isnan(h) || isnan(t) ) "?


Сообщение отредактировал dim770 - Пятница, 28.04.2017, 11:43
 
slavas Дата: Вторник, 02.05.2017, 11:37 | Сообщение # 11
Генерал-майор
Группа: Проверенные
Сообщений: 567
Награды: 16
Репутация: 13
Статус: Offline
dim770, какую проверку исправности? Если датчик не отвечает на экран выводится слово "NAN".
 
fozik Дата: Понедельник, 22.05.2017, 03:33 | Сообщение # 12
Рядовой
Группа: Проверенные
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Цитата slavas ()
Если датчик не отвечает на экран выводится слово "NAN".
Вот у меня вопрос про этот NAN. У меня показания температуры и влажности  с DHT22 сменяются на "NAN". Смотрел решение здесь http://forum.arduino.cc/index.php?topic=335860.0 Пробовал создать пользовательский блок но пока не смог. Подскажите решение этой проблемки. Возможно кто-то создаст такой блок?
 
slavas Дата: Понедельник, 22.05.2017, 10:57 | Сообщение # 13
Генерал-майор
Группа: Проверенные
Сообщений: 567
Награды: 16
Репутация: 13
Статус: Offline
fozik, какой датчик ( на плате или нет), кабель,как подключили.
Экстрасенсы устали.
 
Форум » Основной » Спросить у знатоков » Проблема с настройкой DHT22
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика