#include <Servo.h>
#include <LiquidCrystal.h>
Servo servoMain;
int trigpin = 10;
int echopin = 9;
const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
bool gateClosed = false;
int distance;
float duration;
float cm;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
servoMain.attach(11);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
lcd.begin(16, 2);
}
void loop() {
digitalWrite(trigpin, LOW);
delay(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
duration = pulseIn(echopin, HIGH);
cm = (duration / 58.82);
distance = cm;
if (distance > 60 && !gateClosed) {
servoMain.write(180);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gate Closed");
delay(100);
gateClosed = true;
}
else if (distance <= 60 && gateClosed) {
servoMain.write(0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gate Opened");
delay(50);
gateClosed = false;
}
}