Интерпретация значений повышения Rp и Rpu в таблице данных AM3202 (DHT22)

В технических данных AM2302 на странице 3, таблица 4 указано min, typ и max для Rpu (что подтягивающий резистор, как там дословно) 30K, 45K и 60K Ом соответственно.

В другом месте той же таблицы приведены значения для Rp (без u) < 25 кОм.

В чем здесь разница между Rpu и Rp и как следует интерпретировать две строки?

, 👍0


1 ответ


Лучший ответ:

2

Техническое описание так же неточно, как и сам датчик, и даже хуже, чем вы думаете!

В этой таблице также написано: «обычно требуется внешний подтягивающий резистор сопротивлением около 5,1 кОм».

В техническом описании также упоминается, что выходной сигнал может достигать 8 мА для высокого выхода и минимум 10 мкА для низкого выхода. Значение 10 мкА означает, что сопротивление подтягивающего резистора должно составлять 500 кОм или более. Это неправильно.

В этой таблице данных есть изображение с разрешением 1 КБ.
В этой китайской таблице данных есть изображение с 5 тыс.
Я прогнал эту китайскую таблицу через Google Translate, но это не помогло.

Вывод: таблица данных ненадежна.

Можно поступить, как все: использовать резистор 10 кОм для коротких проводов и попробовать 4 к7 для более длинных проводов.

Это не единственная проблема. Некоторые библиотеки DHT создают ярлык для сигнала данных.

AM3202 неточно измеряет влажность. Если хотите избежать неприятностей, используйте более качественный сенсор.
Хорошим выбором будет датчик Bosch (например, BME280 или BME680). Bosch составляет надежные таблицы данных. Эти датчики от Bosch работают при напряжении 3,3 В. Если вы собираетесь подключить их к плате Arduino с напряжением 5 В, вам понадобятся преобразователи уровня сигналов.

,

Спасибо @Jot. Есть идеи по поводу точности цифры 2 с между чтениями? Вместо библиотеки Adafruit «по умолчанию» я просмотрел [это](https://github.com/markruys/arduino-DHT/blob/master/DHT.cpp) и [это](https://github .com/RobTillaart/Arduino/blob/master/libraries/DHTlib/dht.cpp), которые содержат гораздо более чистый код для моего проекта, точность которого не критична., @Tom Hale

Есть ли причина не использовать вместо этого INPUT_PULLUP в этом случае? На самом деле, я задал это как отдельный вопрос: Использование подтягивающего резистора против INPUT_PULLUP/OUTPUT_PULLUP, @Tom Hale

@TomHale Эти датчики не улучшаются с интервалом более 2 секунд. Не обращайте внимания на все, что написано в даташите о точности, это ерунда. Это чувствительный элемент, который ненадежен. Насколько я могу судить, обе упомянутые вами библиотеки не помещают строку данных в качестве выходной и высокой (что создает ярлык). Так что оба в порядке. Внутренний подтягивающий резистор Arduino составляет от 30 до 50 кОм, это значение слишком велико, чтобы быть надежным, и это значение различно для разных плат Arduino. Вы можете использовать его для теста, возможно, он сработает., @Jot

Ваше здоровье. К вашему сведению, в таблице данных указано 20–50 тыс., как показано в вопросе для подтягивания., @Tom Hale