#include <LiquidCrystal.h>
#include <Servo.h>
// LCD: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
Servo doorServo;
const int trigPin = 8;
const int echoPin = 9;
const int servoPin = 10;
long duration;
int distance;
void setup() {
lcd.begin(16, 2);
lcd.print("Auto Door System");
delay(2000);
lcd.clear();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
doorServo.attach(servoPin);
doorServo.write(0); // Door closed
}
void loop() {
// Trigger the ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure echo pulse duration
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
lcd.setCursor(0, 0);
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm ");
if (distance < 20) {
lcd.setCursor(0, 1);
lcd.print("Person Detected ");
doorServo.write(90); // Open door
delay(2000);
lcd.setCursor(0, 1);
lcd.print("Door Opened ");
delay(2000);
} else {
lcd.setCursor(0, 1);
lcd.print("No One Nearby ");
doorServo.write(0); // Close door
}
delay(500);
}