#include <LiquidCrystal.h>
#include <Servo.h>
int T = 2, E = 3;
int P = 10;
int Rs = 12, En = 11, D4 = 4, D5 = 5, D6 = 6, D7 = 7;
LiquidCrystal lcd(Rs,En,D4,D5,D6,D7);
Servo myservo;
void setup() {
Serial.begin(9600);
pinMode(T, OUTPUT);
pinMode(E, INPUT);
pinMode(P, INPUT);
myservo.attach(9);
lcd.begin(16,2);
}
void loop() {
int S = digitalRead(P);
if (S==HIGH)
{
digitalWrite(T, LOW);
delay(2);
digitalWrite(T, HIGH);
delay(10);
digitalWrite(T, LOW);
int duration = pulseIn(E,HIGH);
int distance = duration * (0.034/2);
lcd.print("Motion Detected");
lcd.setCursor(0,1);
lcd.print(distance);
lcd.print(" cm away");
lcd.print(" Open");
for(int i=0;i<180;i++)
{
myservo.write(i);
delay(100);
}
delay(500);
for(int i=180;i>90;i--)
{
myservo.write(i);
delay(10);
}
}
else
{
lcd.print("No Motion");
lcd.setCursor(0,1);
lcd.print("Door Locked");
delay(1000);
lcd.clear();
}
}