#define TRIG_PIN 2
#define ECHO_PIN 18
#define LED_MERAH 27
#define LED_KUNING 26
#define LED_HIJAU 25
#define BUZZER 33
float jarak = 100; // jarak awal (air kosong)
float tinggiAir = 0;
const float tinggiMaks = 20;
void setup() {
Serial.begin(9600);
pinMode(LED_MERAH, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
// = SIMULASI AIR NAIK =
jarak -= 1; // air naik 1 cm
if (jarak < 0) jarak = 0; // batas bawah
tinggiAir = tinggiMaks - jarak;
Serial.print("Jarak: ");
Serial.print(jarak);
Serial.print(" cm | Tinggi Air: ");
Serial.print(tinggiAir);
Serial.println(" cm");
// = LOGIKA PERINGATAN =
if (tinggiAir >= 15) {
digitalWrite(LED_MERAH, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_HIJAU, LOW);
digitalWrite(BUZZER, HIGH);
}
else if (tinggiAir >= 8) {
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_HIJAU, LOW);
digitalWrite(BUZZER, LOW);
}
else {
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(BUZZER, LOW);
}
delay(1000); // 1 detik
}