#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;
const int potPin = A0;
const int relayPin = 8;
const int servoPin = 9;
int potValue = 0;
int pressure = 0;
void setup() {
lcd.begin(16, 2);
lcd.backlight();
lcd.print("Water Pressure");
pinMode(relayPin, OUTPUT);
myservo.attach(servoPin);
Serial.begin(9600);
}
void loop() {
potValue = analogRead(potPin);
pressure = map(potValue, 0, 1023, 0, 100);
lcd.setCursor(0, 1);
lcd.print("Pressure: ");
lcd.print(pressure);
lcd.print(" % ");
int servoPos = map(pressure, 0, 100, 0, 180);
myservo.write(servoPos);
if (pressure > 50) {
digitalWrite(relayPin, HIGH);
} else {
digitalWrite(relayPin, LOW);
}
Serial.print("Pot Value: ");
Serial.print(potValue);
Serial.print(" | Pressure: ");
Serial.println(pressure);
delay(500);
}