#include <LiquidCrystal.h>
const int trigPin = 9;
const int echoPin = 10;
const int ledPin = 8;
// Инициализация объекта LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long duration;
int distance;
int waterLevelThreshold = 100; // Уровень воды в сантиметрах
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
// Инициализация LCD
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop() {
// Отправка ультразвукового импульса
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Чтение времени отклика
duration = pulseIn(echoPin, HIGH);
// Вычисление расстояния
distance = duration * 0.034 / 2;
// Вывод расстояния в Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Отображение информации на LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm");
// Управление светодиодом и отображение статуса
if (distance > waterLevelThreshold) {
digitalWrite(ledPin, HIGH);
lcd.setCursor(0, 1);
lcd.print("Pump: ON");
} else {
digitalWrite(ledPin, LOW);
lcd.setCursor(0, 1);
lcd.print("Pump: OFF");
}
delay(1000); // Задержка перед следующим измерением
}