// PROJECT : Pengukuran Volume Air Otomatis
const int TRIGPIN = 8;
const int ECHOPIN = 7;
const int LED1 = 13; // Air habis
const int LED2 = 12; // Air setengah
const int LED3 = 11; // Air penuh
const int BUZZER = 10;
long timer;
int jarak;
void setup() {
Serial.begin(9600);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
timer = pulseIn(ECHOPIN, HIGH);
jarak = timer / 58;
Serial.print("Ketinggian air = ");
Serial.print(jarak);
Serial.println(" cm");
// Air penuh
if (jarak < 20) {
Serial.println("Air sudah penuh");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
tone(BUZZER, 1000);
delay(500);
noTone(BUZZER);
}
// Air setengah
else if (jarak < 215) {
Serial.println("Air masih setengah");
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
noTone(BUZZER);
}
// Air habis
else {
Serial.println("Air habis");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
tone(BUZZER, 2000);
delay(200);
noTone(BUZZER);
}
delay(1000);
}