const int relay_pin = 8;
const int relay1_pin = 7;
const int trigg_pin = 12;
const int echo_pin = 11;
const int cycle_time = 100;
unsigned long startMillis;
unsigned long currentMillis;
const unsigned long period = 10000; //the value is a number of milliseconds, ie 1 second
float timing = 0.0;
float distance = 0.0;
float full_level = 200.0;
float low_level = 50.0;
float high_level = 300.0;
void setup() {
pinMode(echo_pin, INPUT);
pinMode(trigg_pin, OUTPUT);
pinMode(relay_pin, OUTPUT);
pinMode(relay1_pin, OUTPUT);
digitalWrite(trigg_pin, LOW);
digitalWrite(relay_pin, LOW);
digitalWrite(relay1_pin, LOW);
startMillis = millis(); //initial start time
Serial.begin(9600);
}
void loop() {
digitalWrite(trigg_pin, LOW);// wave for distance sensor
delay(2);
digitalWrite(trigg_pin, HIGH);
delay(10);
digitalWrite(trigg_pin, LOW);
timing = pulseIn(echo_pin,HIGH);
distance = (timing * 0.034) / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.print("cm | ");
Serial.print(distance / 2.54);
Serial.println("in");
currentMillis = millis(); //get the current "time"
if(distance <= low_level){ // if tank level low reset relay0
digitalWrite(relay_pin, LOW);
}
if(distance >= full_level){ //if tank full set relay0
digitalWrite(relay_pin, HIGH);
}
if(distance < high_level){ //if tank not full reset relay1 or set
digitalWrite(relay1_pin, LOW);
}else{
digitalWrite(relay1_pin, HIGH);
}
if (relay_pin, LOW){currentMillis = millis(); //get the current "time"
}
if (currentMillis - startMillis >= period){ //test whether the period has elapsed
digitalWrite(relay1_pin, HIGH);
digitalWrite(relay_pin, HIGH);
delay(40000);
}
delay(cycle_time);
}