#include <LiquidCrystal.h>
#include <Servo.h>
Servo S1;
int pir_state= LOW;
int var=0;
long duration ,distance;
#define pir_pin 4
#define LED_r 13
#define LED_g 6
#define Epin 3
#define Tpin 2
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup() {
lcd.begin(16, 2);
pinMode(LED_r, OUTPUT);
pinMode(LED_g, OUTPUT);
pinMode(pir_pin , INPUT);
digitalWrite(LED_r,LOW);
digitalWrite(LED_g,LOW);
pinMode(Epin, INPUT);
pinMode(Tpin, OUTPUT);
digitalWrite(Tpin, LOW);
S1.attach(5);
}
void loop() {
digitalWrite(Tpin, LOW);
delayMicroseconds(2);
digitalWrite(Tpin, HIGH);
delayMicroseconds(10);
digitalWrite(Tpin, LOW);
duration =pulseIn(Epin,HIGH);
distance =duration/58.2;
// Serial.print("Distance =");
//Serial.print(distance);
//Serial.println("cm");
var=digitalRead(pir_pin);
if(var==HIGH )
{
if(pir_state==LOW || distance<=10)
{
S1.write(180);
lcd.setCursor(4,1);
lcd.print("gate opne");
digitalWrite(LED_g,HIGH);
// Serial.println("Motion Detected ");
pir_state = HIGH;
}
}
else if(pir_state==HIGH || distance >10){
//Serial.println("Motion ended");
S1.write(0);
pir_state =LOW;
digitalWrite(LED_r,HIGH);
lcd.setCursor(4,1);
lcd.print("gate close");
}
}