#include <LiquidCrystal.h>
#include <Servo.h>
// Inisialisasi pin untuk sensor ultrasonik HC-SR04
const int trigPin = 9;
const int echoPin = 10;
// Inisialisasi objek untuk LCD 16x2
LiquidCrystal lcd(13, 12, 11, 8, 7, 6);
// Inisialisasi objek untuk motor servo
Servo myServo;
void setup() {
// Inisialisasi Serial Monitor
Serial.begin(9600);
// Inisialisasi pin untuk sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Inisialisasi LCD
lcd.begin(16, 2);
lcd.setCursor(2, 0);
lcd.print("JARAK OBJEK");
// Inisialisasi motor servo
myServo.attach(3);
myServo.write(0); // Mengatur posisi awal servo (0 derajat)
}
void loop() {
// Mengukur jarak menggunakan sensor ultrasonik
long duration, cm;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
cm = duration / 58; // Menghitung jarak dalam cm
// Menampilkan jarak objek di LCD
lcd.setCursor(0, 1);
lcd.print(" "); // Membersihkan angka sebelumnya
lcd.setCursor(0, 1);
lcd.print(cm);
lcd.print(" cm");
// Kontrol motor servo berdasarkan jarak
if (cm <= 48) {
myServo.write(0); // Motor servo kembali ke posisi awal (0 derajat) untuk menutup pintu
} else {
myServo.write(90); // Motor servo berputar 90 derajat untuk membuka pintu
}
delay(100); // Delay untuk stabilitas
}