// Pin untuk Ultrasonic Sensor
const int trigPin = 25;
const int echoPin = 33;
// Pin untuk Relay
const int relayPin = 26;
// Pin untuk LED
const int led1 = 13;
const int led2 = 12;
const int led3 = 14;
const int led4 = 27;
// Variabel untuk pengukuran
long duration;
int distance;
int maxDistance = 100; // Tinggi tangki air dalam cm (sesuaikan)
// Setup pin
void setup() {
// Setup pin ultrasonic
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Setup pin relay dan LED
pinMode(relayPin, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
// Mulai komunikasi serial untuk debugging
Serial.begin(115200);
}
void loop() {
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mengukur waktu pantulan kembali
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam cm
distance = duration * 0.034 / 2;
// Menghitung ketinggian air (jika sensor ditempatkan di atas tangki)
int ketinggianAir = maxDistance - distance;
// Debugging untuk menampilkan nilai
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
Serial.print("Ketinggian Air: ");
Serial.print(ketinggianAir);
Serial.println(" cm");
// Kontrol relay dan LED berdasarkan ketinggian air
if (ketinggianAir < 10) {
// h < 10% - Relay ON, LED 1 ON, LED lainnya OFF
digitalWrite(relayPin, HIGH);
digitalWrite(led1, HIGH); // LED 1 ON
digitalWrite(led2, LOW); // LED 2 OFF
digitalWrite(led3, LOW); // LED 3 OFF
digitalWrite(led4, LOW); // LED 4 OFF
}
else if (ketinggianAir < 40) {
// h < 40% - Relay ON, LED 1 ON, LED 2 OFF, LED 3 OFF
digitalWrite(relayPin, LOW);
digitalWrite(led1, HIGH); // LED 1 ON
digitalWrite(led2, LOW); // LED 2 OFF
digitalWrite(led3, LOW); // LED 3 OFF
digitalWrite(led4, LOW); // LED 4 OFF
}
else if (ketinggianAir < 70) {
// h < 70% - Relay OFF, LED 1 dan 2 ON, LED 3 OFF
digitalWrite(relayPin, LOW);
digitalWrite(led1, HIGH); // LED 1 ON
digitalWrite(led2, HIGH); // LED 2 ON
digitalWrite(led3, LOW); // LED 3 OFF
digitalWrite(led4, LOW); // LED 4 OFF
}
else if (ketinggianAir < 100) {
// h < 100% - Relay OFF, LED 1, 2 dan 3 ON
digitalWrite(relayPin, LOW);
digitalWrite(led1, HIGH); // LED 1 ON
digitalWrite(led2, HIGH); // LED 2 ON
digitalWrite(led3, HIGH); // LED 3 ON
digitalWrite(led4, LOW); // LED 4 OFF
}
else {
// h = 100% - Relay OFF, Semua LED ON
digitalWrite(relayPin, LOW);
digitalWrite(led1, HIGH); // LED 1 ON
digitalWrite(led2, HIGH); // LED 2 ON
digitalWrite(led3, HIGH); // LED 3 ON
digitalWrite(led4, HIGH); // LED 4 ON
}
delay(1000); // Tunggu 1 detik sebelum pembacaan ulang
}