fbpx

Procedure

Schematic:

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.