Steps to perform the experiment:
Take two ultrasonic sensors and connect their Vcc and Gnd to 5V and Gnd of Arduino respectively as shown in above diagram.
Connect Trig and Echo of both the sensors to the Arduino as mentioned in the code.
Connect positive leg 3 LEDs to pin 7, pin 6 and pin 5 of Arduino & Negative leg to Gnd of Arduino.
Also, connect pump motor to relay and relay to Arduino as shown in the above diagram.
Program:
#define trigger 8
#define echo 9
#define trigger2 11
#define echo2 10
#define Relay 12
#define pb 13
#define led1 7
#define led2 6
#define led3 5
long duration, duration2;
float distance, distance2;
void setup()
{
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(trigger2,OUTPUT);
pinMode(echo2,INPUT);
pinMode(Relay,OUTPUT);
pinMode(pb,INPUT_PULLUP);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}
void measure_distance()
{
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
duration=pulseIn(echo,HIGH);
distance=(duration/2)/29.1;
}
void measure_distance2()
{
digitalWrite(trigger2,LOW);
delayMicroseconds(2);
digitalWrite(trigger2,HIGH);
delayMicroseconds(10);
digitalWrite(trigger2,LOW);
delayMicroseconds(2);
duration2=pulseIn(echo2,HIGH);
distance2=(duration2/2)/29.1;
}
void loop()
{
measure_distance();
measure_distance2();
Serial.print(“Hasil Sensor 1 :”);
Serial.print(distance);
Serial.println(“cm “);
Serial.print(“Hasil Sensor 2 :”);
Serial.print(distance2);
Serial.println(“cm “);
if(distance<8 && distance2>10)
{
digitalWrite(led3, LOW);
digitalWrite(Relay,HIGH);
digitalWrite(led1, HIGH);
delay(6000);
digitalWrite(led2, HIGH);
while(1){
digitalWrite(Relay,LOW);
digitalWrite(led1, LOW);
if(digitalRead(pb)==LOW){
digitalWrite(led2, LOW);
break;
}
}
}
if(distance<8 && distance2<8)
{
digitalWrite(led3, LOW);
digitalWrite(Relay,HIGH);
digitalWrite(led1, HIGH);
delay(17000);
digitalWrite(led2, HIGH);
while(1){
digitalWrite(Relay,LOW);
digitalWrite(led1, LOW);
if(digitalRead(pb)==LOW){
digitalWrite(led2, LOW);
break;
}
}
}
if(distance>8 && distance2>8)
{digitalWrite(led3, HIGH);
}
else
{
measure_distance();
measure_distance2();
}
}
After uploading the above program, place a glass and this device works by flowing and stopping water to the glass automatically, by classifying the glass height.