#define trigPin 5 // Pin trigger sensor HC-SR04
#define echoPin 18 // Pin echo sensor HC-SR04
#define greenLED 4 // Green LED pin
#define yellowLED 2 // Yellow LED pin
#define blueLED 15 // Blue LED pin
#define redLED 19// Red LED pin
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(blueLED, OUTPUT);
pinMode(redLED, OUTPUT);
}
void loop() {
long duration, distance;
// Sending ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Receiving duration of the echo
duration = pulseIn(echoPin, HIGH);
// Calculating distance based on duration
distance = duration * 0.034 / 2;
// Indicating status with LEDs and serial print
if (distance >= 180) {
digitalWrite(greenLED, HIGH); // Green LED for "Safe"
digitalWrite(yellowLED, LOW);
digitalWrite(blueLED, LOW);
digitalWrite(redLED, LOW);
Serial.println("Status: Aman");
} else if (distance >= 150 && distance < 180) {
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, HIGH); // Yellow LED for "Alert Level 1"
digitalWrite(blueLED, LOW);
digitalWrite(redLED, LOW);
Serial.println("Status: Siaga 1");
} else if (distance >= 120 && distance < 150) {
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(blueLED, HIGH); // Blue LED for "Alert Level 2"
digitalWrite(redLED, LOW);
Serial.println("Status: Siaga 2");
} else {
digitalWrite(greenLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(blueLED, LOW);
digitalWrite(redLED, HIGH); // Red LED for "Alert Level 3"
Serial.println("Status: Siaga 3");
}
delay(1000); // 1 second delay between readings
}