#include // импорт LCD библиотеки LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // LCD соединения byte heart[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000 }; // Специальный символ сердца для дисплея int sensorPin = A0; // датчик почвы int sensorValue = 0; int percentValue = 0; int TouchSensor = 13; // сенсорный датчик int pomp = 12; // 5В водяной насос void setup() { Serial.begin(9600); lcd.begin(16, 2); // LCD lcd.createChar(1, heart); // Специальный символ для дисплея pinMode(pomp, OUTPUT); pinMode(TouchSensor, INPUT); } void loop() { if(digitalRead(TouchSensor)==HIGH) //Считать сигнал сенсорного датчика { digitalWrite(pomp, HIGH); // если сенсорный датчик HIGH (ВЫСОКИЙ), то включить помпу Serial.println("Pomp ON"); // Это для проверки показаний элемента lcd.clear(); lcd.setCursor(4, 0); // курсор 1-я строка вверху слева lcd.print("WATERING"); //Печать на ЖК-дисплее при нажатии сенсорного датчика (растение получает воду) lcd.setCursor(4, 1); // курсор 2-я строка слева lcd.write(1); // Специальный значок сердца для ЖК-дисплея lcd.print("SERGE"); //Печать на ЖК-дисплее при нажатии сенсорного датчика (растение получает воду) lcd.write(1); // Специальный значок сердца для ЖК-дисплея delay(100); lcd.clear(); // После того, как сенсор запущен, очистить текст на ЖК-дисплее } else { digitalWrite(pomp, LOW); // если сенсорный датчик LOW (НИЗКИЙ, не нажат), помпа выключена Serial.println("Pomp OFF"); // Это для проверки показаний элемента sensorValue = analogRead(sensorPin); // прочитать датчик почвы Serial.print("\n\nAnalog Value: "); // Это для проверки показаний элемента Serial.print(sensorValue); // Это для проверки показаний элемента percentValue = map(sensorValue, 1023, 200, 0, 100); // Калибровка датчика почвы Serial.print("\nPercentValue: "); // Это для проверки показаний элемента Serial.print(percentValue); // выводить Значение влажности в % Serial.print("%"); //Это для проверки показаний элемента lcd.setCursor(0, 0); // курсор установлен на первой строке lcd.print("Serge's grond"); // Вывод на ЖК-дисплей LCD lcd.setCursor(0, 1); // курсор установлен на второй строке lcd.print("bevat:"); // Вывод на ЖК-дисплей LCD lcd.print(percentValue); // Вывод на ЖК-дисплей LCD значение влажности в % lcd.print("%"); // Вывод на ЖК-дисплей LCD lcd.print(" water"); // Вывод на ЖК-дисплей LCD delay(500); //задержка перед началом цикла lcd.clear(); // в конце цикла очистить текст на LCD } }