#define TRIGGER_PIN 4 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 5 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define LED_HIGH 8 // Pin number for the high water level LED.
#define LED_MEDIUM 7 // Pin number for the medium water level LED.
#define LED_LOW 6 // Pin number for the low water level LED.
#define THRESHOLD_HIGH 100 // Threshold for high water level in centimeters.
#define THRESHOLD_MEDIUM 50 // Threshold for medium water level in centimeters.
void setup() {
pinMode(LED_HIGH, OUTPUT);
pinMode(LED_MEDIUM, OUTPUT);
pinMode(LED_LOW, OUTPUT);
Serial.begin(9600);
}
void loop() {
delay(50);
unsigned int distance = getDistance(); // Get distance in centimeters.
if (distance < THRESHOLD_HIGH && distance >= THRESHOLD_MEDIUM) {
digitalWrite(LED_HIGH, HIGH);
digitalWrite(LED_MEDIUM, LOW);
digitalWrite(LED_LOW, LOW);
} else if (distance < THRESHOLD_MEDIUM) {
digitalWrite(LED_HIGH, LOW);
digitalWrite(LED_MEDIUM, HIGH);
digitalWrite(LED_LOW, LOW);
} else {
digitalWrite(LED_HIGH, LOW);
digitalWrite(LED_MEDIUM, LOW);
digitalWrite(LED_LOW, HIGH);
}
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
unsigned int getDistance() {
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
return pulseIn(ECHO_PIN, HIGH) * 0.034 / 2;
}