Датчик влажности почвы для Arduino: щуп YL-69 и модуль YL-38

Как работает датчик влажности почвы из щупа YL-69 и платы YL-38, чем различаются выходы A0 и D0 и как сделать индикатор полива на восьми светодиодах.
Назначение
Датчик влажности почвы показывает, насколько влажная земля, в которую он воткнут. По его показаниям можно судить о недостатке или избытке полива комнатных и садовых растений, а в связке с контроллером — автоматизировать полив цветов, грядок или целой плантации.

Устройство: щуп и плата компаратора
Комплект состоит из двух частей — контактного щупа YL-69 и платы YL-38, соединённых двумя проводами; провода входят в набор. Между двумя электродами щупа подаётся небольшое напряжение. В сухой почве сопротивление велико и ток мал, во влажной сопротивление падает, а ток немного возрастает. Полученный аналоговый сигнал и отражает степень влажности.
Плата YL-38 построена на компараторе LM393 и имеет четыре контакта для подключения к контроллеру:
- Vcc — питание;
- GND — земля;
- A0 — аналоговое значение влажности;
- D0 — цифровой сигнал уровня влажности.
На выходе D0 компаратор выдаёт низкий логический уровень при влажной почве и высокий при сухой. Порог переключения настраивается потенциометром. Два светодиода на плате показывают наличие питания и состояние выхода D0. Благодаря цифровому выходу и его индикатору модуль способен работать и сам по себе, без контроллера.
Характеристики
| Напряжение питания | 3,3–5 В |
| Ток потребления | 35 мА |
| Выход | цифровой и аналоговый |
| Размер модуля | 16×30 мм |
| Размер щупа | 20×60 мм |
| Общий вес | 7,5 г |
Проект: светодиодный индикатор влажности
Простой пример использования — шкала из восьми светодиодов, по которой издалека видно, пора ли поливать растение. Понадобятся плата Arduino Uno, датчик влажности почвы, 8 светодиодов, макетная плата и соединительные провода.

Аналоговый выход датчика подключён ко входу A0, светодиоды — к цифровым контактам с 4 по 11. Вход A0 — это 10-битный АЦП, так что показания лежат в диапазоне от 0 до 1023, причём более сухой почве соответствует большее число.
В скетче заданы две границы: значение при полном поливе (minvalue, в примере 220) и значение при критической сухости (maxvalue, в примере 600). Обе величины получают экспериментально для своей почвы и своего датчика. Раз в секунду программа считывает показание, выводит его в монитор последовательного порта и пересчитывает в номер светодиода функцией map: countled = map(avalue, maxvalue, minvalue, 0, 7). Затем зажигаются все светодиоды до этого номера включительно, остальные гаснут. Чем влажнее земля, тем больше горящих светодиодов.
Возможные неполадки
- Не горит светодиод питания — проверить наличие и полярность питания 3,3–5 В на плате YL-38.
- После полива не загорается индикатор влажности — подстроить потенциометром порог срабатывания и проверить соединение YL-38 со щупом YL-69.
- Аналоговое значение не меняется при поливе — проверить соединение платы со щупом и убедиться, что щуп находится в земле.