// Deklarasi PIN
const int triggerPin = 2;
const int echoPin = 4;
const int ledRedPin = 32;
const int ledYellowPin = 35;
const int ledGreenPin = 34;
// Set Threshold
const int thresholdSafe = 15;
const int thresholdUnsafe = 50;
void setup() {
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledRedPin, OUTPUT);
pinMode(ledYellowPin, OUTPUT);
pinMode(ledGreenPin, OUTPUT);
Serial.begin(9600);
}
// Convert distance menjadi centimeter
float readDistanceCM() {
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
int duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2;
}
void loop() {
// Deklarasi Jarak dalam cm
float distance = readDistanceCM();
Serial.println("--------------------");
// Kondisi untuk menyalakan LED sesuai dengan ketinggian air
if (distance <= thresholdSafe) {
digitalWrite(ledRedPin, LOW);
digitalWrite(ledYellowPin, LOW);
digitalWrite(ledGreenPin, HIGH);
Serial.println("Tinggi Air:\nAman");
} else if (distance > thresholdSafe && distance <= thresholdUnsafe) {
digitalWrite(ledRedPin, LOW);
digitalWrite(ledYellowPin, HIGH);
digitalWrite(ledGreenPin, LOW);
Serial.println("Tinggi Air:\nWaspada! Mendekati batas air berbahaya!");
} else {
digitalWrite(ledRedPin, HIGH);
digitalWrite(ledYellowPin, LOW);
digitalWrite(ledGreenPin, LOW);
Serial.println("Tinggi Air\nBERBAHAYA! KETINGGIAN AIR MELEBIHI BATAS AMAN");
}
Serial.println("--------------------");
delay(1000);
}