Зависание датчика DHT21

alexvp
Offline
Зарегистрирован: 09.10.2015

Есть схема, собирающая данные о температуре. В ней используются датчики DHT21 и библиотека dht. В силу ряда причин иногда с датчиков (датчика) не поступает информация. Например, обрыв линии от датчика. Ситуация вполне обыденная, но вот проблема. Библиотека не умеет отрабатывать такие ситуации. При обрыве линии библиотечная функция ничего не выдает и ардуино тупо завичсает в ожидании данных от функции.

 

Кто-нибудь сталкивался с такой ситуацией? Подскажите, как подправить библиотечную функцию, чтобы она выдавала какой-нибудь символ ошибки при непоступлении данных от датчика.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alexvp пишет:

библиотека dht. 

Какая библиотека? (думаете, она одна?)

alexvp пишет:

библиотечная функция ничего не выдает и ардуино тупо завичсает

Какая функция? Там их три.
 

alexvp пишет:

Кто-нибудь сталкивался с такой ситуацией? Подскажите, как подправить библиотечную функцию, чтобы она выдавала какой-нибудь символ ошибки при непоступлении данных от датчика.

Нормальная библиотека по таймауту выдаёт предыдущее значение (измеренное в прошлый раз), а Ваша, Вы говорите, зависает. Почему знаете только Вы, т.к. скетч у Вас секретный и используемые библиотеки и функции тоже серетны.

 

alexvp
Offline
Зарегистрирован: 09.10.2015

Думаю, что не одна библиотека :)

Спасибо за ссылку, попробую.

Скетч самый примитивный: считал температуру и вывел на дисплей. Поэтому и не стал копипастить. Скетч работает правильно. если датчик подключен. Как только обрываю, например, питание, то тут же зависает.

 

MacSim
Offline
Зарегистрирован: 28.11.2012

не знаю, у меня в случае ошибки nan возвращает