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

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

 

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

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

 

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

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

 

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

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

 

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

  • Плата Arduino Uno;
  • Макетная плата;
  • USB-кабель;
  • 1 датчик воды;
  • 1 светодиод;
  • 1 резистор 220 Ом;
  • Провода «папка-папка» и «папка-мамка».

 

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

 

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

Для начала зададим переменную x с помощью оператора int. Переменную мы будем использовать для присваивания ей значения, получаемого с датчика воды.

 

int x;

void setup() {

}

void loop() {

}

 

На втором этапе в процедуре void setup() мы прописываем режим работы аналогового порта A0, как вход — INPUT и подключаем монитор порта с помощью стандартной команды Serial.begin(9600).

 

int x;

void setup() {

  pinMode(A0, INPUT);
  Serial.begin(9600);

}

void loop() {

}

 

Далее в процедуре void loop() получаем значение с аналогового порта с помощью команды x = analogRead(A0); и передаем значение на монитор порта Serial.println (x);, а также ставим паузу, для удобства чтения информации.

 

int x;

void setup() {

  pinMode(A0, INPUT);
  Serial.begin(9600);

}

void loop() {

  x = analogRead(A0);
  Serial.println (x);
  delay (1000);

}

 

Теперь можно подключить датчик воды к Arduino (смотри фото ниже) и загрузить скетч.

 

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

 

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

 

Перейдите в Панель меню — Инструменты — Монитор порта
Перейдите в Панель меню — Инструменты — Монитор порта

 

После того, как мы узнали показания датчика при его увлажнении, мы можем добавить в скетч функцию автоматического включения светодиода при превышении какого-либо значения и его выключения. Для этого в скетч следует добавить три строчки:
1. В процедуре void loop() устанавливаем Пин 12, как выход pinMode(12, OUTPUT);;

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

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

 

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

void setup() // процедура setup

{

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

}

void loop() // процедура loop

{

  x = analogRead(A0); // переменная "x" находится в интервале от 0 до 1023

    if (x > 100) { digitalWrite (12, HIGH); } // если x меньше 100 - включаем диод
    if (x < 100) { digitalWrite (12, LOW); } // если x больше 100 - выключаем диод

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

}

 

Подключите светодиод к Пин 12 на Ардуино и загрузите скетч.
Скачать готовый скетч zanyatie7_water

 

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

  1. В первой строчке мы присвоили имя x для значений c входа A0. С помощью оператора int, мы указали что значения x могут принимать только целое число;
  2. Условный оператор if позволяет нам определить действие при истинном условии.

 

Задание для самостоятельного выполнения:

  1. Подключите второй светодиод к Pin 10. Перепишите скетч так, чтобы при сухом датчик воды включался светодиод на Pin 10 и выключался светодиод на Pin 12.

Пройти тест


1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 4,78 out of 5)
Загрузка...

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

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