#include "LiquidCrystal.h"
#include <Servo.h>
Servo myservo;
LiquidCrystal lcd(5,6,7,8,9,10);
int irPin=2;
int count=0;
boolean state = true;
const int trigPin = 3;
const int echoPin = 4;
long duration;
long distance;
void setup()
{
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach (11);
lcd.begin(16,2);
pinMode(irPin, INPUT);
lcd.setCursor(0,0);
lcd.print(" PINTU OTOMATIS ");
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Count No : ");
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration*0.034/2;
if(distance <= 40 ){
lcd.setCursor(0, 0);
myservo.write(90);
lcd.print("Pintu Terbuka");
if (!digitalRead(irPin) && state){
count++;
state = false;
Serial.print("Count: ");
Serial.println(count);
lcd.setCursor(12,1);
lcd.print(count);
delay(100);
}
if (digitalRead(irPin)){
state = true;
delay(100);
}
}
else{
lcd.setCursor(0, 0);
myservo.write(0);
lcd.print("Pintu Tertutup");
}
}