#define TRIG_PIN 9
#define ECHO_PIN 10
#define RED_LED 5
#define YELLOW_LED 4
#define GREEN_LED 7
#define BUZZER 6 // Buzzer connected to pin 6
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RED_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(BUZZER, OUTPUT); // Set buzzer pin as output
Serial.begin(9600);
}
long getDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
long distance = duration * 0.034 / 2; // Convert to cm
return distance;
}
void loop() {
long distance = getDistance();
Serial.print("Water Distance: ");
Serial.print(distance);
Serial.println(" cm");
// LED + Buzzer Logic based on water distance
if (distance <= 7) {
digitalWrite(RED_LED, HIGH);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, HIGH); // Buzzer ON
}
else if (distance > 8 && distance <= 18) {
digitalWrite(RED_LED, LOW);
digitalWrite(YELLOW_LED, HIGH);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER, LOW); // Buzzer OFF
}
else if (distance > 19) {
digitalWrite(RED_LED, LOW);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(GREEN_LED, HIGH);
digitalWrite(BUZZER, LOW); // Buzzer OFF
}
delay(1000); // Wait 1 second before next reading
}