#include <Servo.h>
#include <LiquidCrystal_I2C.h>
Servo servo1;
int trigPin = 11;
int echoPin = 12;
long distance;
long duration;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
servo1.attach(9);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
ultra();
if(distance > 20){
digitalWrite(2,HIGH);
servo1.write(0);
delay(300);
digitalWrite(2,LOW);
lcd.setCursor(0,0);
lcd.print(String() + "CLOSE ");
}
if(distance < 20){
digitalWrite(3,HIGH);
servo1.write(120);
delay(5000);
digitalWrite(3,LOW);
lcd.setCursor(0,0);
lcd.print(String() + "OPEN ");
}
}
void ultra() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration*0.034/2;
}