int ledM=13;
int ledH=12;
int kolom =16;
int baris = 2;
#define ECHO 10
#define TRIG 11
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
Servo servoku;
int sudut;
int Buzzer =7;
LiquidCrystal_I2C lcd(0x27, kolom, baris);
void setup() {
servoku.attach (9);
pinMode(ledM,OUTPUT);
pinMode(ledH,OUTPUT);
pinMode(ECHO,INPUT);
pinMode(TRIG,OUTPUT);
pinMode(Buzzer,OUTPUT);
lcd.init();
lcd.backlight();
}
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){
digitalWrite (ledM,HIGH);
digitalWrite (ledH,LOW);
tone (Buzzer,1000,200);
servoku.write (90);
int i;
lcd.setCursor(0,0);
lcd.print("AWAS ADA ");
lcd.setCursor(0,1);
lcd.print("KERETA");
}else{
digitalWrite (ledM,LOW);
digitalWrite (ledH,HIGH);
servoku.write (0);
lcd.setCursor(0,0);
lcd.print("KERETA API");
lcd.setCursor(0,1);
lcd.print("SUDAH LEWAT");
}
}