#define led 13
#define trig 9
#define echo 8
#include <Servo.h>
#define buzzer 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo myservo;
void setup() {
lcd.begin(20 ,4);
Serial.begin(9600);
Serial.println("palang kereta");
pinMode(led, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
myservo.attach(11);
}
float readDistanceCM() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int duration = pulseIn(echo, HIGH);
return duration * 0.034 / 2;
}
void loop() {
float distance = readDistanceCM();
Serial.print("Jarak = ");
Serial.print(readDistanceCM());
Serial.println(" cm");
lcd.setCursor(0,0);
lcd.print("jarak kereta:");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.setCursor(7,1);
lcd.print("cm");
if (distance <75){
myservo.write(180);
digitalWrite(led, HIGH);
tone(buzzer, 500);
delay(210);
noTone(buzzer);
digitalWrite(led, LOW);
delay(210);
}
else{
myservo.write(0);
noTone(buzzer);
digitalWrite(led, LOW);
}
}