Рубрики
Схемы на Arduino

Как работает датчик уровня воды и как его подключить к Arduino

Переполнение различных контейнеров/емкостей для хранения воды является достаточно частой проблемой для многих домохозяйств. Конечно, существуют специальные шаровые клапаны, которые автоматически перекрывают поток воды при достижении уровнем воды определенного уровня, но в ряде случаев применение электронного устройства для решения этой задачи выглядит более предпочтительным.

Поэтому в данной статье мы рассмотрим принципы работы датчика уровня воды (water level sensor) и его подключение к плате Arduino. Ранее на нашем сайте мы рассматривали следующие проекты, связанные с определением уровня воды:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик уровня воды (купить на AliExpress).
  3. Резистор (купить на AliExpress).
  4. Светодиод (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Как работает датчик уровня воды

Распиновка датчика уровня воды

Датчик уровня воды имеет 3 контакта, работает от 5V и передает на свой выход аналоговые данные. Его распиновка показана на следующем рисунке.

VCC – через данный контакт на датчик подается питающее напряжение 5V.

GND – общий провод (земля). Его необходимо подключить к общему проводу платы Arduino.

OUT – аналоговый выход датчика, на котором формируется аналоговый сигнал с уровнем в диапазоне от GND до VCC.

Принципы работы датчика уровня воды

На печатной плате датчика расположены длинные проводящие пластины и при достижении водой определенного уровня проводимость между двумя пластинами изменяется. Измеряя величину этих изменений мы можем определить уровень воды.

На представленной Gif картинке наглядно показан принцип работы датчика уровня воды. Как вы можете видеть из представленного рисунка, капли воды падают в стакан, уровень воды поднимается, а вместе с ним пропорционально повышается и уровень напряжения на выходном каскаде датчика. Это происходит из-за того, что на печатной плате датчика расположено 10 проводящих пластинок, 5 из которых являются питающими, а другие 5 – сенсорными.

Компоненты датчика уровня воды

Датчик, по своей сути, очень простой, поэтому и компонентов в нем немного. Компоненты датчика показаны на следующем рисунке.

Датчик содержит 3 контакта, 2 из которых используются для подачи питания на датчик, а третий является выходным контактом датчика. Также датчик содержит встроенный светодиод, который загорается при подаче питания на датчик, транзистор и несколько резисторов.

Наиболее часто задаваемые вопросы про датчик уровня воды

Какие основные типы датчиков уровня воды существуют:
Существуют 6 основных типов подобных датчиков: резистивные, емкостные, ультразвуковые, частотные, на основе поверхностных волн (GWR) и на основе датчиков давления. Каждый из этих типов датчиков имеет свои достоинства и недостатки.

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

Можно ли сделать датчик уровня воды самому?
Если у вас есть в наличии светодиоды, зуммер и чувствительные провода, то данный датчик можно изготовить самому.

Можно ли уровень воды определять с помощью ультразвукового датчика?
Да, можно. С помощью ультразвукового датчика мы можем определять расстояние между источником ультразвукового сигнала и поверхностью воды. Подобный проект на основе платы Arduino мы уже рассматривали на нашем сайте.

Схема модуля датчика уровня воды

Схема модуля датчика уровня воды представлена на следующем рисунке.

В представленной схеме коллектор транзистора подключен к источнику напряжения 5V, а эмиттер транзистора подключен к земле через резистор 100 Ом. В модуле датчика 5 проводящих пластин подключены к контакту Vcc через резистор 100 Ом, а остальные 5 пластин подключены к базе NPN транзистора. Теперь, если вода будет достигать этих проводящих пластин, ток начнет протекать от источника 5V на базу транзистора и транзистор будет открываться. И чем больше датчик будет погружен в воду, тем большее напряжение будет на его выходе.

Схема проекта

Схема подключения датчика уровня воды к плате Arduino Uno представлена на следующем рисунке.

В данной схеме мы подключили выходной контакт датчика уровня воды к контакту A0 платы Arduino, а светодиод – к ШИМ контакту 6 платы Arduino. Программу нашего проекта мы напишем таким образом, чтобы яркость свечения светодиода изменялась в зависимости от уровня воды, измеряемого датчиком.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В программе мы будем считывать аналоговое значение напряжения с выхода датчика и на основе его значения определять уровень воды.

Код программы мы начнем с указания осмысленных имен для используемых контактов – к которым подключены датчик уровня воды и светодиод.

Далее, в функции setup(), инициализируем последовательную связь со скоростью 9600 бод, установим режим работы контакта, к которому подключен светодиод, на вывод данных, и подадим на него уровень LOW.

Затем, в функции void loop() мы будем считывать значение напряжения с выхода датчика и сохранять его в переменной sensorValue. Далее мы будем проверять больше ли это значение чем число 570. Если больше, то мы будем преобразовывать с помощью функции map это значение из диапазона 570-800 в диапазон 0-255 и затем формировать сигнал ШИМ (широтно-импульсной модуляции) с помощью функции analogWrite. Для целей отладки мы будем выводить значение переменной outputValue в окно монитора последовательной связи с помощью функции serial.print.

Тестирование работы проекта

На представленной gif картинке показан принцип работы нашего проекта. В начальный момент времени светодиод в нашей схеме находится в выключенном состоянии, а когда мы будем подливать в стакан воды, яркость свечения светодиода будет постепенно увеличиваться. И когда стакан будет полон воды светодиод будет гореть с максимальной яркостью.

Единственная проблема, которую автор проекта заметил при работе с данным датчиком уровня воды, заключается в том, что нижняя часть датчика является очень чувствительной, в то время как верхняя часть датчика не отличается особой чувствительностью. И когда вода достигает нижнего края датчика чувствительность датчика достигает максимума, а потом она насыщается.

Исходный код программы (скетча)

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *