#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);
  }
}