На какой длине провода работает DHT22?
Обновлено Редакция GAW
Линия данных DHT22 — одна жила с подтягивающим резистором к питанию. Нуль датчик формирует, замыкая линию на землю, а единицу — отпуская её, и тогда линию поднимает резистор. С длиной провода растёт ёмкость линии, и подъём до единицы затягивается, а у последовательных битов разница только в длительности единицы: 26 мкс для нуля и 70 мкс для единицы.
Что разрешает даташит
| Питание | Длина провода | Подтяжка по Aosong |
|---|---|---|
| 5 В | до 10 м | 5,1 кОм |
| 5 В | от 10 до 30 м | 5,1 кОм по разд. 7.1, но в примечании к рис. 4 — 1 кОм |
| 5 В | больше 30 м | подбирать меньше по месту |
| 3,3 В | до 100 см | 5,1 кОм |
При 3,3 В ограничение связано не с сигналом, а с питанием: на проводе питания падает часть напряжения, и датчику не хватает его нижней границы 3,3 В.
Почему подтяжку уменьшают
Фронт на линии — это заряд ёмкости провода через резистор с постоянной времени τ = R · C. Наш расчёт для ёмкости линии 1 нФ (пример, реальную ёмкость своего кабеля смотрите в его спецификации):
Пять микросекунд — заметная доля импульса 22–30 мкс: фронт съедает часть высокого уровня, и запас по времени, по которому программа отличает нуль от единицы, уменьшается. С ростом длины провода ёмкость растёт, и запас тает дальше. С подтяжкой 1 кОм фронт в пять раз быстрее, а ток через датчик в нуле — 5 мА, в пределах его 8 мА.
Если нужно дальше
Для десятков метров надёжнее датчики, рассчитанные на длинные линии, — например, на шине 1-Wire с адресацией и проверкой CRC. Что делать, если DHT22 вообще не читается, разобрано в ответе «Почему DHT22 выдаёт NaN», а параметры датчика — в карточке DHT11 и DHT22. Подробнее о выборе подтягивающего резистора — в глоссарии.
Похожие вопросы
Можно ли поставить подтяжку меньше 1 кОм?
Не стоит: в нуле датчик должен пропустить через себя весь ток подтяжки, а его выход по даташиту рассчитан на 8 мА. При 5 В и 1 кОм это 5 мА, при 470 Ом — уже 10,6 мА, больше допустимого (наш расчёт), и уровень нуля поднимется.
Какой кабель взять для DHT22?
Aosong прямо пишет, что качество провода влияет на дальность связи, и рекомендует экранированный. Для нескольких метров подойдёт витая пара: в одной паре данные с землёй, в другой — питание с землёй.
Можно ли повесить несколько DHT22 на один провод?
Нет: у DHT22 нет адреса, и на запрос отвечает любой датчик на линии, поэтому ответы двух датчиков столкнутся. Каждому датчику нужен свой вывод микроконтроллера, или берут датчики с адресацией, например DS18B20 на шине 1-Wire.
Источники
- 广州奥松电子有限公司 (Aosong). AM2302 产品手册 (温湿度模块), V1.2-20180605 — текст в виде изображений, прочитан по рендеру; с. 1 — дальность передачи сигнала более 20 м, питание 3,3–5,5 В, рекомендовано 5 В; с. 2, табл. 4 — выходной ток в открытом состоянии 8 мА, внутренняя подтяжка 30–60 кОм, низкий уровень выхода до 300 мВ; с. 3, разд. 7.1 — при кабеле короче 30 м подтяжка 5,1 кОм, длиннее — уменьшать по месту; при питании 3,3 В кабель не длиннее 100 см; примечание к рис. 4 — для провода от 10 м рекомендуется Rp = 1 кОм; с. 5, табл. 6 — бит 0 — высокий уровень 22–30 мкс, бит 1 — 68–75 мкс
- Aosong Electronics. Digital-output relative humidity & temperature sensor/module DHT22 (DHT22 also named as AM2302) — ранний англоязычный документ производителя (копия на сайте SparkFun) — дальность передачи 20 м; качество соединительных проводов влияет на качество и дальность связи, рекомендован экранированный провод
Нашли ошибку?
Смотрите также
- Почему DHT22 выдаёт NaN?Чтение не удалось: нет ответа датчика или ошибка контрольной суммы
- DHT11 и DHT22Датчики влажности по одному проводу: точность, формат 40 бит, тайминги, подтяжка
- Подтягивающий резисторPull-up и pull-down: определённый уровень на свободной линии
- 1-WireТайм-слоты, ROM-команды, поиск, CRC8, DS18B20, паразитное питание