#include <Servo.h>
#include <LiquidCrystal.h>
int t=2;
int e=10;
int p=9;
int Rs=12,En=11,D4=7,D5=6,D6=5,D7=4;
LiquidCrystal lcd(Rs,En,D4,D5,D6,D7);
Servo myservo;
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
Serial.begin(9600);
myservo.attach(3);
pinMode(t, OUTPUT);
pinMode(e, INPUT);
pinMode(p, INPUT);
}
void loop()
{
// put your main code here, to run repeatedly:
int s=digitalRead(p);
if (s==HIGH)
{
lcd.clear();
digitalWrite(t, HIGH);
delay(2);
digitalWrite(t,LOW);
delay(10);
digitalWrite(e,HIGH);
delay(10);
int duration= pulseIn(e,HIGH);
int distance= duration*(0.034/2);
lcd.setCursor(1,0);
lcd.print("Motion Detected");
lcd.setCursor(2,1);
lcd.print(distance);
lcd.print("cm Away!");
for (int i=90;i>0; i--)
{
myservo.write(i);
delay(10);
}
myservo.write(0);
delay(4000);
for (int i=0; i>90; i++)
{
myservo.write(i);
delay(10);
}
myservo.write(90);
}
else
{
lcd.setCursor(0,0);
lcd.print("Motion Not Detected");
lcd.setCursor(2,1);
lcd.print("Door Locked!");
delay(500);
}
}