#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// put your setup code here, to run once:
LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo;
const int trigPin = 2;
const int echoPin = 3;
int distanceThreshold = 100;
void setup(){
myservo.attach(9);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.init();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int durasi = pulseIn(echoPin,HIGH);
int jarak = durasi * 0.034/2;
if (jarak < distanceThreshold){
myservo.write(90);
lcd.setCursor(3,0);
lcd.print("PINTU TERBUKA");
delay(1000);
}
else{
myservo.write(0);
lcd.setCursor(0,0);
lcd.print("PINTU TERTUTUP");
delay(1000);
lcd.clear();
}
}