Мы используем:
- Плата Arduino. x1
- Компьютер(для написания и загрузке кода, а так же мы будем брать с него электричество и общаться с ним). x1
- Провод для соединения компьютера и платы. x1
- Датчик уровня воды x1
- Провода. x3
- Есть схемы с внешним источником питания, но можно взять питание и с платы.
Схема:
Скетч:
Для подключением данного датчика можно использовать скетч из примеров:
Файл -> Примеры ->01.Basics->AnalogReadSerial
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Graphical representation is available using serial plotter (Tools > Serial Plotter menu) Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability } |
Уберём комментарии что бы они не отвлекали от кода и я ещё увеличил задержку между измерениями в скрипте до 1 секунды:
1 2 3 4 5 6 7 8 9 |
void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); Serial.println(sensorValue); delay(1000); } |
Что делает скетч, раз в секунду показывает значения аналогового порта.
В данном случае основываясь на этих данных можно делать какой нибудь вывод о уровне воды…. у меня получилось выделить три позиции… воды нет, вода есть, воды очень много(срабатывает не всегда).
Рассмотрим скетч по подробнее:
В блоке setup мы устанавливаем частоту передачи данных по порту USB.
1 |
Serial.begin(9600); |
В нашем случае выставляем в значение 9600 бод.
в блоке loop :
1 2 3 |
int sensorValue = analogRead(A0); Serial.println(sensorValue); delay(1000); |
1 |
int sensorValue = analogRead(A0); |
в переменную sensorValue заносим значение с аналогового порта A0. Именно к этому порту мы и подключили сенсор.
1 |
Serial.println(sensorValue); |
Выводим значения сенсора на порт USB.
1 |
delay(1000); |
делаем задержку в секунду.
скетч закончился.
Теперь после загрузки скетча мы можем открыть окно Инструменты->Мониторинг порта. И увидеть значения которые выводит данный сенсор.
Видео процесса:
Другие статьи по программированию плат Arduino можно посмотреть здесь.
Комментарии: