У меня периодически отваливается некоторые DHT22. Т.е. вместо нормальных показаний выдают NaN.
Читаю показания редко, раз в 4сек.
Что примечательно: ресет дуни не помогает.
Помогают только две вещи: полностью обесточить устройство, или… что более странно, передёрнуть землю датчика.
Тут у меня сразу 2 вопроса:
Кто-нибудь с таким сталкивался?
Как можно без реле передёрнуть землю? Т.е. разомкнуть и заново подключить?
Получается, смотря где рвать питание. Я сперва рвал землю на датчике, потому что подтяжка была на плате впаяна, и отключение питания датчика не влияло.
Позже я проверил ситуацию, где подтяжка находится на самом модуле, и да, можно рвать и питание, а не землю.
А вот, отключение и повторное включения сигнального провода ни к чему не приводит - датчик остаётся в зависшем состоянии.
Спасибо за совет.
Я тут посмотрел, оказывается DHT22 потребляет заметно меньше 20мА, совсем ничего
И потому припаял питание к свободному цифровому пину, которым успешно передёргиваю зависающий датчик.
Кстати, интересное наблюдение: часто датчик не работает сразу при загрузке.
А вот если его питать через пин, а на от БП, то такой проблемы вообще больше не наблюдаю. Странно. Может, ему не нравится питание.
Интуиция подсказывает, что если датчик зависает при включении устройства, то конденсатор только усугубит проблему. Столь малый номинал электролита Low ESR, боюсь, я не найду. Тогда уж керамику?
Кстати, сейчас подумал: сейчас по питанию у меня стоит 470uF и шунтирующий на 0.1uF, плюс после этого - Шоттки и ещё один 470uF, для поддержки питания МК.
Датчик как раз запитан после всех этих электролитов, которые, конечно, не LOWESR.
Думаю, что в этой ситуации, надо делать какую-то задержку на питание датчика. По ходу, такую задержку выполняет смена питание на пин дуни.
Но в ситуации, когда датчик вешается с течением времени, дело, думаю, точно не в конденсаторах.
Вот интересно, насколько разумная идея питать датчик от пина?
Ну и посадите питание датчика на отдельный пин. Тока там вполне хватит. Если душа требует совершенства, то через P-канальный MOSFET питание или через N-канальный - землю
ну, просто, обычно, чем меньше вольтаж и ёмкость у электролита, тем выше его ESR. Это к тому что “желательно Low ESR”… Поэтому я обычно не мельчу с ёмкостями и просто шунтирую их мелкой керамикой.
Да и больше-то как раз, может, и нельзя. Большие ёмкости сосут большие стартовые токи. Вот так переборщишь с ёмкостью - и блоку питания приплохеет. Хорошо, если в защиту уйдет.
Да, ёмкости лучше ставить ближе к потребителю. Теоретически, тут дело, скорее, не в просаде напруги, а в её стартовом значении, и лишний кондёр тут может быть помехой. К сожалению, пока нечем померить.
крейсерские - порядка 5.2, а стартовые, в момент зависания, померить сейчас нечем. На днях поэкспериментирую с питанием.
До прошлого года, я вообще не сталкивался с подобными проблемами. Такое ощущение, что DHT22 изменились, что ли; продаются бракованные или подделки, и т.п. Есть которые работают только на стандартной библиотеке, а на альтернативных уже не хотят, раньше такого не было; а есть которые глючат, как у меня сейчас. Но вот раньше я с таким не сталкивался. Датчик просто мог выйти из строя через пару лет… Но у меня такое наблюдается только с определёнными партиями с прошлого года…