Подключение датчика воды к Ардуино

Датчик протечки воды (уровня жидкости) для платы Ардуино. Рассмотрим, как правильно подключить датчик water sensor к аналоговому порту на плате Arduino.

Рассмотрим на этом занятии аналоговый датчик протечки воды (уровня жидкости). Расскажем, как подключить датчик к аналоговому порту на Arduino. Самостоятельно напишем скетч для вывода показаний датчика протечки воды на серийный порт. Рассмотрим команды Serial.begin и Serial.print в языке программирования C++ для вывода информации с микроконтроллера Arduino на серийный порт.

Датчик уровня жидкости (Water Sensor)

Рабочее напряжение аналогового сенсора — 5v. Выходное напряжение (показания датчика) зависит от степени погружения датчика в жидкость и от параметров, влияющих на коэффициент передачи напряжения, например, проводимость жидкости. Это простой в использование и недорогой датчик уровня жидкости, который широко применяется в системах автоматизации и при разработке Умного дома.

Подключение к Ардуино датчика воды (Water Sensor)
Подключение к Ардуино датчика воды (Water Sensor)

Как вы уже заметили на фото к этому занятию, датчик уровня жидкости имеет три контакта. Правый контакт (-) подключается к Земле (GND), средний к питанию 5v, а левый к аналоговому входу, например, A0. При полностью сухом датчике выходное напряжение и показания на аналоговом входе будут равны нулю, чем больше датчик будет погружен в воду, тем больше будут его показания (от 0 до 1023).

Как подключить датчик воды к Ардуино

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

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • датчик воды;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Перед тем как, подключить датчик протечки воды к плате Ардуино, следует написать скетч. Откройте программу Arduino IDE и вы увидите скетч, где уже прописаны процедуры void setup() и void loop(). Для начала зададим переменную water с помощью оператора int. Переменную мы будем использовать для хранения данных в памяти и присваивания ей значения, получаемого с датчика воды.

Пишем свой первый скетч для Ардуино
Пишем скетч для Ардуино и датчика дождя (протечки воды)

В процедуре void setup() мы прописываем режим работы аналогового порта, как вход — pinMode(AO,INPUT) и подключаем монитор порта с помощью команды Serial.begin(9600). Далее в процедуре void loop() получаем значение с аналогового порта с помощью команды water = analogRead(A0); и передаем значение на монитор порта Serial.println(water); и ставим паузу для удобства.

int water;

void setup() {
  pinMode(A0, INPUT);
  Serial.begin(9600);
}

void loop() {
  water = analogRead(A0);
  Serial.println(water);
  delay(1000);
}
Перейдите в Панель меню — Инструменты — Монитор порта
Перейдите в Панель меню — Инструменты — Монитор порта

После загрузки скетча вы сможете получить данные с датчика на мониторе порта. Для этого перейдите в Arduino IDE в Панель меню — Инструменты — Монитор порта. Или используйте для открытия сочетание клавиш Ctrl + Shift + M. После того, как мы узнали показания датчика при его увлажнении, мы можем добавить в скетч функцию автоматического включения светодиода при превышении какого-либо значения.

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

Теперь можно подключить датчик воды к Arduino и светодиод к pin12 (смотри схему сборки выше) и загрузить скетч, в который следует добавить три строчки:

1. В процедуре void setup() устанавливаем Пин 12, как выход pinMode(12, OUTPUT);;

2. В процедуре void loop() с помощью условного оператора if добавляем действие — включения светодиода при значении water > 100;

3. В процедуре void loop() с помощью условного оператора if добавляем действие — выключения светодиода при значении water < 100.

Скетч для датчика воды (water sensor)

int water; // присваиваем имя для значений с аналогового входа A0

void setup() // процедура setup
{
  pinMode(12, OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output»)
  pinMode(A0, INPUT);  // к входу A0 подключим датчик (англ. «intput»)
  Serial.begin(9600);  // подключаем монитор порта
}

void loop() // процедура loop
{
  water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023

    if (water > 100) { digitalWrite(12, HIGH); } // включаем светодиод
    if (water < 100) { digitalWrite(12, LOW); }  // выключаем светодиод

  Serial.println(water); // выводим значение датчика на монитор
  delay(1000);           // задержка в одну секунду
}

Пояснения к коду:

  1. в первой строчке мы присвоили имя x для значений c входа A0. С помощью оператора int, мы указали что значения water могут принимать только целое число;
  2. условный оператор if позволяет нам определить действие при истинном условии.
1 Star2 Stars3 Stars4 Stars5 Stars (73 votes, average: 4,81 out of 5)
Загрузка...

6 комментариев для “Пример: Подключение датчика воды к Ардуино”

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

    1. Я конечно не мастер, но по идее все примерно также только вместо светодиода через транзистор будет мотор. Датчик воды довольно чувствительный, реагирует даже на дыхание, так что значение лучше поставить под 200.

    1. Это не значит, что датчик воды сломан, просто это его максимальные значения. Часть тока еще теряется за счет сопротивления в датчике. Максимальное значение (1023) не выдаст не один датчик. Это возможно, если только напрямую 5V подключить к аналоговому входу.

  2. Какую обвязку имеет сам датчик? В плане того, чтобы заменить его на систему электродов для измерения уровня жидкости в емкости. Но в простом варианте между электродами нам нужно измерять сопротивление, здесь же датчик выдает в ответ ток…

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

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