FLProg
Вход на сайт
Логин:
Пароль:
Поиск
Мы в VK
...
Статистика
Понедельник, 27.03.2017, 15:30
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

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


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Проблема с настройкой 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
Гуру
Группа: Проверенные
Сообщений: 901
Награды: 23
Репутация: 16
Статус: Offline
Вы физически используете один дисплей, а зачем в схеме стоит два?
С кнопкой у вас происходит следующее. В Настройках входа у вас включен подтягивающий резистор, то-есть пока кнопка не нажата у вас на входе датчика висит высокий уровень, при нажатии появляется низкий. Инвертируйте выход кнопки.


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

Сообщение отредактировал Олег - Среда, 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
Гуру
Группа: Проверенные
Сообщений: 901
Награды: 23
Репутация: 16
Статус: Offline
Не пробовал, но по-логике так и должно быть.

Схемы на ноутбуки
 
Allex901 Дата: Среда, 27.01.2016, 14:02 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Спасибо, разобрался с Вашей помощью.
 
НовыйUser Дата: Пятница, 25.11.2016, 21:16 | Сообщение # 6
Полковник
Группа: Проверенные
Сообщений: 431
Награды: 3
Репутация: 2
Статус: Offline
Есть DHT22, из них один показывает -1% влажности, второй минус 18% от реальных и третий пока рабочий smile

Так вот решение простое. Ставится 3 датчика в одной коробке и спустя пол часа-час записывается значения и далее на схемах просто блоком суммирования чисел подтягивается недостающий проценты к датчикам чтобы все показывали единый результат.

Для пригодного использования нужно уходить на другие датчики влажности т.к  тот что показывает 1% ранее работал стабильно.
Либо купить себе для калибровки психрометр


Сообщение отредактировал НовыйUser - Пятница, 25.11.2016, 21:17
 
OlegAn1962 Дата: Пятница, 25.11.2016, 21:52 | Сообщение # 7
Полковник
Группа: Проверенные
Сообщений: 318
Награды: 2
Репутация: 0
Статус: Offline
Цитата НовыйUser ()
далее на схемах просто блоком суммирования чисел подтягивается недостающий проценты к датчикам чтобы все показывали единый результат.
А откуда у вас такая уверенность, что ошибка будет линейна во всём диапазоне?
 
НовыйUser Дата: Пятница, 25.11.2016, 22:31 | Сообщение # 8
Полковник
Группа: Проверенные
Сообщений: 431
Награды: 3
Репутация: 2
Статус: Offline
Цитата OlegAn1962 ()
А откуда у вас такая уверенность, что ошибка будет линейна во всём диапазоне?
проверьте сами..


Сообщение отредактировал НовыйUser - Пятница, 25.11.2016, 23:16
 
Boroda Дата: Среда, 08.02.2017, 19:21 | Сообщение # 9
Генерал-майор
Группа: Проверенные
Сообщений: 599
Награды: 28
Репутация: 25
Статус: Online
Не стану создавать новую тему.
Вопрос Сергею (разработчику):
Вставляю стандартный блок 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 | Сообщение # 10
Автор программы
Группа: Администраторы
Сообщений: 749
Награды: 35
Репутация: 24
Статус: Offline
Подождите выхода следующей версии. Там этот вопрос решон. Во первых опрос датчика будет происходить на той плате где он установлен, во вторых применена новая библиотека и опрос происходит намного быстрее. Существующий код писался в стародавние времена, когда о работе плат по условию даже и не планировалась.

Разработчик программы FLProg
 
Boroda Дата: Среда, 08.02.2017, 20:10 | Сообщение # 11
Генерал-майор
Группа: Проверенные
Сообщений: 599
Награды: 28
Репутация: 25
Статус: Online
Спасибо, Сергей!
 
Форум » Основной » Спросить у знатоков » Проблема с настройкой DHT22
Страница 1 из 11
Поиск:

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