#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin = 9;
const int echoPin = 10;
const int ledMotion = 11;
const int ledNoMotion = 12;
Servo myServo;
long duration;
int distance;
int maxDistance = 100;
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledMotion, OUTPUT);
pinMode(ledNoMotion, OUTPUT);
myServo.attach(6);
myServo.write(90);
digitalWrite(ledNoMotion, HIGH);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
if (distance <= maxDistance && distance) {
// lcd.clear();
lcd.setCursor(0,0);
lcd.print(" HATI HATI ");
lcd.setCursor(0,1);
lcd.print(" DIJALAN DANANGG ");
myServo.write(90);
digitalWrite(ledMotion, HIGH);
digitalWrite(ledNoMotion, LOW);
} else {
// lcd.clear();
lcd.setCursor(0,0);
lcd.print("PELANKAN MOBIL ");
lcd.setCursor(0,1);
lcd.print("TEMPELKAN KARTU ");
myServo.write(180);
digitalWrite(ledMotion, LOW);
digitalWrite(ledNoMotion, HIGH);
}
// delay(500);
}