#define trigPin 5 // Pin trigger sensor ultrasonik HC-SR04
#define echoPin 18 // Pin echo sensor ultrasonik HC-SR04
#define ledAman 4 // Pin LED untuk status aman (hijau)
#define ledSiaga1 2 // Pin LED untuk status siaga 1 (kuning)
#define ledSiaga2 21 // Pin LED untuk status siaga 2 (biru)
#define ledSiaga3 19 // Pin LED untuk status siaga 3 (merah)
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledAman, OUTPUT);
pinMode(ledSiaga1, OUTPUT);
pinMode(ledSiaga2, OUTPUT);
pinMode(ledSiaga3, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam centimeter
distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Menentukan status keamanan berdasarkan jarak
if (distance >= 180) {
Serial.println("Aman");
digitalWrite(ledAman, HIGH);
digitalWrite(ledSiaga1, LOW);
digitalWrite(ledSiaga2, LOW);
digitalWrite(ledSiaga3, LOW);
} else if (distance >= 150 && distance < 180) {
Serial.println("Siaga 1");
digitalWrite(ledAman, LOW);
digitalWrite(ledSiaga1, HIGH);
digitalWrite(ledSiaga2, LOW);
digitalWrite(ledSiaga3, LOW);
} else if (distance >= 120 && distance < 150) {
Serial.println("Siaga 2");
digitalWrite(ledAman, LOW);
digitalWrite(ledSiaga1, LOW);
digitalWrite(ledSiaga2, HIGH);
digitalWrite(ledSiaga3, LOW);
} else {
Serial.println("Siaga 3");
digitalWrite(ledAman, LOW);
digitalWrite(ledSiaga1, LOW);
digitalWrite(ledSiaga2, LOW);
digitalWrite(ledSiaga3, HIGH);
}
delay(1000); // Delay 1 detik sebelum membaca ulang sensor
}