#include <LiquidCrystal.h>
#include <Servo.h>
// Настройка пинов для подключения дисплея
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
// Настройка сервопривода
Servo myServo;
const int servoPin = 10;
// Пин для управления контрастностью дисплея
const int contrastPin = 9;
// Пин датчика воды
const int waterSensorPin = A0;
// Порог уровня воды
const int waterThreshold = 350;
void setup() {
// Настройка контрастности дисплея
pinMode(contrastPin, OUTPUT);
analogWrite(contrastPin, 128); // Установка контрастности на 50% (0–255)
// Инициализация дисплея
lcd.begin(16, 2);
lcd.print("Water Level:");
// Инициализация сервопривода
myServo.attach(servoPin);
myServo.write(0); // Начальное положение
}
void loop() {
// Считывание значения с датчика воды
int waterLevel = analogRead(waterSensorPin);
// Отображение значения уровня воды на дисплее
lcd.setCursor(0, 1);
lcd.print("Level: ");
lcd.print(waterLevel);
lcd.print(" "); // Очищаем остаток строки
// Управление сервоприводом в зависимости от уровня воды
if (waterLevel > waterThreshold) {
myServo.write(90); // Поворот сервопривода (открытие)
lcd.setCursor(0, 0);
lcd.print("Valve: Open ");
} else {
myServo.write(0); // Возврат в исходное положение
lcd.setCursor(0, 0);
lcd.print("Valve: Closed ");
}
delay(500); // Небольшая задержка для стабильной работы
}