#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
long duration,inches;
int set_Val,percentage;
bool state,pump;
void setup()
{
lcd.begin(16,2);
lcd.print("WATER LEVEL:");
lcd.setCursor(0, 1);
lcd.print("PUMP:OFF MANUAL");
pinMode(8, OUTPUT);
pinMode(9, INPUT);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, OUTPUT);
set_val-EEPROM.read(0);
if(set_val>150)set_val=150;
}
void long()
{
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(8, HIGH);
delayMicroseconds(10);
digitalWrite(8, LOW);
duration = pulseIn(9,HIGH);
inches = microsecondToInches(duration);
percentage=(set_val-inches)100/set_val;
lcd.setCursor(12,0);
if(percentage<0)percentge=0;
lcd.print(percentage);
lcd,print("% ");
if(percentage<30)
if(percentage>99)pump=0;
digitalWrite(12,lpump);
lcd, setCursor(5,1);
if(pump ==1)lcd.print("ON");
else if(pump==0) lcd.print("OFF");
lcd.setCursor(9,1);
if(!digitalRead(11))lcd.print("MANUAL");
else lcd.print("AUtO");
if(digitalRead(10)&!state&digitalRead(11)){
state=1;
set_val=inches;
EEPROM.write(0,set_val);
}
if(digitalRead(10)&!state!digitalRead(11){
state=1;
pump=!pump;
}
if(digitalRead(10))state=0;
delay(500);
}
long microsecondsToInches(long microseconds ){
return microseconds / 74 / 2;
}