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

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

Погружной датчик уровня воды: как он работает, какие у него выводы и как собрать на Arduino звуковую сигнализацию с тремя уровнями тревоги.

Зачем нужен датчик и как он устроен

Датчик уровня воды применяют для контроля заполнения ёмкостей, в которые нельзя заглянуть, чтобы вовремя узнать о превышении критической отметки и не допустить переполнения. По конструкции такие датчики бывают поплавковыми, врезными и погружными; рассматриваемый модуль относится к погружным.

Погружной датчик уровня воды для Arduino

Принцип работы основан на сопротивлении: чем глубже плата опущена в воду, тем меньше сопротивление между соседними проводниками. На выходе получается аналоговый сигнал, по которому контроллер может судить о глубине погружения. О наличии питания сообщает красный светодиод.

Выводов три: «+» — питание, «−» — земля, S — аналоговый выход.

Характеристики

Напряжение питания3,3–5 В
Ток потребления20 мА
Выходаналоговый
Зона обнаружения16×30 мм
Размеры62×20×8 мм
Рабочая температура10–30 °C

Проект: звуковая сигнализация затопления

В качестве примера собирают сигнализацию, которая по мере подъёма воды подаёт три разных звуковых сигнала: при небольшом затоплении, при среднем уровне и при критическом. Пьезоизлучатель, подключённый прямо к цифровому выводу, звучит слишком тихо, поэтому используется динамик, включённый через транзистор.

  • плата Arduino Uno;
  • датчик уровня воды;
  • динамик 8 Ом;
  • резистор 500 Ом;
  • транзистор КТ503Е;
  • соединительные провода.
Схема сигнализации затопления: датчик уровня воды, транзистор и динамик на Arduino

Выход S датчика подключается к аналоговому входу A0, цепь динамика — к цифровому контакту 11.

Логика скетча

Аналоговый вход Arduino — это 10-битный АЦП, поэтому функция analogRead возвращает числа от 0 до 1023. Раз в секунду скетч считывает значение с A0, выводит его в монитор последовательного порта и сравнивает с тремя порогами. Пороги найдены опытным путём:

  • больше 400 — минимальное погружение, звучит тон 293 Гц (ре первой октавы);
  • больше 500 — средний уровень, тон 466 Гц (си-бемоль первой октавы);
  • больше 600 — большое погружение, тон 587 Гц (ре второй октавы).

Сигнал воспроизводится функцией tone в течение двух секунд. Если значение ниже нижнего порога, то есть датчик сухой, звук отключается вызовом noTone. Так как пороги получены экспериментально, для конкретного экземпляра датчика их стоит проверить по показаниям в мониторе порта.

Что проверить при неполадках

Если светодиод питания не горит, проверяют, подано ли на датчик напряжение 3,3–5 В и соблюдена ли полярность. Если при погружении аналоговое значение не меняется, помимо питания стоит проверить соединение выхода датчика со входом Arduino.

← Все статьи