#define LED_MERAH 18
#define LED_ORANGE 5
#define LED_KUNING 4
#define LED_HIJAU 2
#define buzzer 15
#define TRIG_PIN 13
#define ECHO_PIN 12
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(LED_ORANGE, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_MERAH, HIGH);
digitalWrite(LED_ORANGE, HIGH);
digitalWrite(LED_KUNING, HIGH);
noTone(buzzer);
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;
}
void loop() {
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);
if(distance>50 && distance <=100){
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_ORANGE, HIGH);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, HIGH);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Silahkan Jalan");
noTone(buzzer);
}else if(distance>100 && distance <=200){
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_ORANGE, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, HIGH);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Segera Berhenti");
noTone(buzzer);
}else if(distance>200 && distance <=300){
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_ORANGE, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, HIGH);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Berhenti");
noTone(buzzer);
}else if(distance>300){
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_ORANGE, HIGH);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, LOW);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Waduh");
tone(buzzer,400);
delay(200);
tone(buzzer,500);
delay(200);
}
}