/* Hello Wokwi! */
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo myservo;
int val;
#define PIN_TRIG 2
#define PIN_ECHO 3
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("Hello, Wokwi!");
myservo.attach(9);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
}
void loop() {
lcd.clear();
delay(50);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Read the result:
int duration = pulseIn(PIN_ECHO, HIGH);
Serial.print("Distance in CM: ");
Serial.println(duration / 58);
if(duration /58 >= 20 ){
lcd.setCursor(5, 0);
lcd.print("Pintu");
lcd.setCursor(1, 1);
lcd.print("Terbuka 3.5 cm");
myservo.write(90);
}else if(duration /58 >= 7){
lcd.setCursor(5, 0);
lcd.print("Pintu");
lcd.setCursor(1, 1);
lcd.print("Terbuka 2 cm");
myservo.write(45);
}else if(duration /58 <= 5){
lcd.setCursor(5, 0);
lcd.print("Pintu");
lcd.setCursor(3, 1);
lcd.print("Tertutup");
myservo.write(0);
}
delay(1000);
}