// Definisi pin untuk sensor ultrasonik dan LED
const int ECHO_PIN = 2; // Pin echo sensor ultrasonik
const int TRIG_PIN = 3; // Pin trigger sensor ultrasonik
const int LED_HIGH = 4; // LED indikator air tinggi
const int LED_MEDIUM = 5; // LED indikator air sedang
const int LED_LOW = 6; // LED indikator air rendah
// Jarak threshold untuk level air const float HIGH_THRESHOLD = 50; // Batasan jarak untuk level tinggi const float MEDIUM_THRESHOLD =
100; // Batasan jarak untuk level sedang
// Fungsi untuk mengukur jarak menggunakan sensor ultrasonik float measureDistance() {
digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return (duration * 0.034) / 2; // Menghitung jarak dari durasi pantulan
}
// Mengatur status LED berdasarkan jarak yang terukur
void setLEDs(float distance) {
if (distance > MEDIUM_THRESHOLD) {
// Jika jarak lebih dari MEDIUM_THRESHOLD, level rendah
digitalWrite(LED_LOW,
HIGH); // Menyalakan LED level rendah digitalWrite(LED_MEDIUM, LOW); digitalWrite(LED_HIGH, LOW);
} else if (distance <= MEDIUM_THRESHOLD && distance > HIGH_THRESHOLD) {
// Jika jarak antara HIGH_THRESHOLD dan MEDIUM_THRESHOLD,
level sedang
digitalWrite(LED_LOW, LOW); digitalWrite(LED_MEDIUM,
HIGH); // Menyalakan LED level sedang digitalWrite(LED_HIGH, LOW);
} else {
// Jika jarak kurang dari atau sama dengan HIGH_THRESHOLD, level tinggi
digitalWrite(LED_LOW, LOW); digitalWrite(LED_MEDIUM, LOW); digitalWrite(LED_HIGH,
HIGH); // Menyalakan LED level tinggi
}
}
// Fungsi setup untuk inisialisasi void setup() {
pinMode(ECHO_PIN, INPUT); // Pin echo sebagai input
pinMode(TRIG_PIN, OUTPUT); // Pin trigger sebagai output
pinMode(LED_HIGH, OUTPUT); // LED level tinggi sebagai output
pinMode(LED_MEDIUM, OUTPUT); // LED level sedang sebagai output
pinMode(LED_LOW, OUTPUT); // LED level rendah sebagai output
}
// Fungsi loop utama untuk mengukur dan mengatur LED
void loop() {
float distance = measureDistance(); // Mengukur jarak
setLEDs(distance); // Mengatur status LED berdasarkan jarak
delay(500); // Memberi jeda singkat sebelum pengukuran berikutnya
}