#include <Servo.h>
#include <LiquidCrystal_I2C.h>
const int echoPin = 12;
const int trigPin = 13;
#define merah 10
#define hijau 9
#define buzzer 6
LiquidCrystal_I2C lcd(0x27,16,2);
Servo myservo1;
Servo myservo2;
void setup() {
// put your setup code here, to run once:
myservo1.attach(11);
myservo2.attach(3);
pinMode(trigPin , OUTPUT);
pinMode(echoPin , INPUT);
pinMode(hijau, OUTPUT);
pinMode(merah, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration1 = pulseIn(echoPin, HIGH);
float distance1 = duration1 /58.0;
if (distance1 >= 20) {
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Pintu garasi");
lcd.setCursor(4,1);
lcd.print("Tertutup");
digitalWrite(buzzer, HIGH);
digitalWrite(merah, HIGH);
digitalWrite(hijau, LOW);
delay(1000);
myservo1.write(0);
myservo2.write(0);
} else if (distance1 < 20 ) {
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Membuka");
lcd.setCursor(4,1);
lcd.print("Garasi");
digitalWrite(buzzer, LOW);
digitalWrite(merah, LOW);
digitalWrite(hijau, HIGH);
delay(1000);
myservo1.write(90);
myservo2.write(90);
}
delay(1000);
}