#define ECHO_PIN 2
#define TRIG_PIN 15
#define ledred 5
#define ledoranye 18
#define ledgreen 25
#define ledblue 12
#define buzz 14
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27,20,4);
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(ledred, OUTPUT);
pinMode(ledoranye, OUTPUT);
pinMode(ledgreen, OUTPUT);
pinMode(buzz, OUTPUT);
}
void loop() {
lcd.setBacklight(HIGH);
delay(100);
lcd.setBacklight(LOW);
delay(100);
lcd.setBacklight(HIGH);
delay(100);
lcd.setBacklight(LOW);
delay(100);
lcd.setBacklight(HIGH);
delay(100);
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("jarak: ");
Serial.println(distance);
delay(1000);
if (distance>301){
Serial.print("Zona Aman....");
digitalWrite(ledgreen, HIGH);
delay(600);
digitalWrite(ledgreen, LOW);
delay(600);
digitalWrite(ledgreen, HIGH);
delay(600);
digitalWrite(ledgreen, LOW);
digitalWrite(ledoranye, LOW);
digitalWrite(ledred, LOW);
digitalWrite(ledblue, LOW);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Zona Aman");
lcd.init();
lcd.backlight();
lcd.setCursor(0,1);
lcd.print ("jarak: ");
lcd.println(distance);
}
else if (distance>300 && distance <=201){
Serial.print("Zona Bahaya!");
digitalWrite(ledgreen, LOW);
digitalWrite(ledred, LOW);
digitalWrite(ledblue, LOW);
digitalWrite(ledoranye, HIGH);
delay(600);
digitalWrite(ledoranye, LOW);
delay(600);
digitalWrite(ledoranye, HIGH);
delay(600);
digitalWrite(ledoranye, LOW);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Hati hati woi");
lcd.init();
lcd.backlight();
lcd.setCursor(0,1);
lcd.print ("jarak: ");
lcd.println(distance);
}
else if (distance>200 && distance <=101){
Serial.print("Zona Ba");
digitalWrite(ledgreen, LOW);
digitalWrite(ledred, LOW);
digitalWrite(ledblue, LOW);
digitalWrite(ledblue, HIGH);
delay(600);
digitalWrite(ledblue, LOW);
delay(600);
digitalWrite(ledblue, HIGH);
delay(600);
digitalWrite(ledblue, LOW);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("BAHAYA!!");
lcd.init();
lcd.backlight();
lcd.setCursor(0,1);
lcd.print ("jarak: ");
lcd.println(distance);
}
else if (distance <=100){
Serial.print("Zona Danger, Alarm Bunyi!!!");
digitalWrite(ledoranye, LOW);
digitalWrite(ledgreen, LOW);
digitalWrite(ledred, HIGH);
digitalWrite(ledblue, LOW);
delay(600);
digitalWrite(ledred, HIGH);
delay(600);
digitalWrite(ledred, LOW);
delay(600);
digitalWrite(ledred, HIGH);
tone(buzz, 1000);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("ZONA BAHAYA !!");
lcd.init();
lcd.backlight();
lcd.setCursor(0,1);
lcd.print ("jarak: ");
lcd.println(distance);
}
}