#define echoPin 7
#define trigPin 8
int ledRed = 3;
int ledYellow = 2;
int ledGreen = 4;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
long jarak, ketinggianAir, duration;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarak = (duration / 2) / 28.5;
ketinggianAir = 18.5 - jarak;
Serial.print("Ketinggian Air = ");
Serial.print(ketinggianAir);
Serial.println(" cm");
if (ketinggianAir < 5) {
// LED Merah berkedip cepat
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, LOW);
for (int i = 0; i < 10; i++) {
digitalWrite(ledRed, HIGH);
delay(50);
digitalWrite(ledRed, LOW);
delay(50);
}
Serial.println("Air dalam batas tidak aman");
} else if (ketinggianAir >= 5 && ketinggianAir < 10) {
// LED Kuning berkedip pelan
digitalWrite(ledRed, LOW);
digitalWrite(ledGreen, LOW);
for (int i = 0; i < 3; i++) {
digitalWrite(ledYellow, HIGH);
delay(500);
digitalWrite(ledYellow, LOW);
delay(500);
}
Serial.println("Air hampir habis");
} else {
// LED Hijau menyala terus menerus
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, HIGH);
Serial.println("Air dalam batas aman");
}
delay(1000);
}