#include <EEPROM.h>
long duration, inches;
int set_val,percentage;
bool state,pump;
void setup() {
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>10)set_val=10;
Serial.begin(9600);
}
void loop() {
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(8, HIGH);
delayMicroseconds(10);
digitalWrite(8, LOW);
duration = pulseIn(9, HIGH);
inches = microsecondsToInches(duration);
percentage=(set_val-inches)*100/set_val;
if(percentage<0)percentage=0;
Serial.println("percentage of water is");
Serial.println(percentage);
if(percentage<95&digitalRead(11))pump=1;
if(percentage>99)pump=0;
digitalWrite(12,!pump);
if(pump==1){
Serial.println("ON");
}
else if(pump==0){
Serial.println("OFF");
}
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(1000);
}
long microsecondsToInches(long microseconds) {
return microseconds / 74 / 2;
}