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

Рассмотрим на этом занятии аналоговый датчик протечки воды (уровня жидкости). Расскажем, как подключить датчик к аналоговому порту на 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;
  • Макетная плата;
  • USB-кабель;
  • 1 датчик воды;
  • 1 светодиод;
  • 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.

Скачать готовый скетч можно с Google Диск по ссылке здесь

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. Подключите второй светодиод к Pin 10. Перепишите скетч так, чтобы при сухом датчик воды включался светодиод на Pin 10 и выключался светодиод на Pin 12.
1 Star2 Stars3 Stars4 Stars5 Stars (70 votes, average: 4,80 out of 5)
Загрузка...

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

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