#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;
const int TrigPin = 2;
const int EchoPin = 3;
int distanceThreshold = 100;
void setup() {
// put your setup code here, to run once:
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(0,0);
lcd.print("PINTU TERBUKA");
delay(1000);
}
else{
myservo.write(0);
lcd.setCursor(0,0);
lcd.print("PINTU TERTUTUP");
delay(1000);
}
}