#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27);
int ledM = 13;
int ledH = 12;
int kolom = 16;
int baris = 2;
#define ECHO 10
#define TRIG 11
#include <Servo.h>
Servo servoku;
int sudut;
int BUZZER=7;
void setup(){
lcd.init();
lcd.backlight();
servoku.attach(9);
pinMode(ledM, OUTPUT);
pinMode(ledH, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(TRIG, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
float jarak_cm(){
digitalWrite (TRIG, LOW);
delayMicroseconds (2);
digitalWrite (TRIG, HIGH);
delayMicroseconds (10);
digitalWrite (TRIG, LOW);
int durasi = pulseIn (ECHO, HIGH);
return durasi*0.034/2;
}
void loop (){
float jarak = jarak_cm();
if (jarak>150){
int i;
lcd.setCursor(0,0);
lcd.print("AWAS ADA KERETA");
digitalWrite (ledM, HIGH);
digitalWrite (ledH, LOW);
tone (BUZZER, 1000, 200);
servoku.write (90);
}else{
if (jarak<150);
lcd.setCursor(0,1);
lcd.print("KERETA API SUDAH LEWAT");
digitalWrite(ledM, LOW);
digitalWrite(ledH, HIGH);
servoku.write (0);
}
}