#include <Servo.h>
#include <LiquidCrystal_I2C.h>
const int trigPin = 9; // Pin trigger sensor ultrasonik
const int echoPin = 10; // Pin echo sensor ultrasonik
const int servoPin = 6; // Pin servo motor
const int ledPin = 7; // Pin lampu LED
const int safetyDistance = 20; // Jarak aman untuk membuka pintu (dalam cm)
Servo myServo; // Objek servo motor
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
myServo.attach(servoPin);
lcd.begin(16, 2);
lcd.print("Palang Pintu");
lcd.setCursor(0, 1);
lcd.print("Otomatis");
delay(2000);
lcd.clear();
}
void loop() {
long duration, distance;
// Trigger ultrasonik untuk mengukur jarak
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu perjalanan gelombang ultrasonik
distance = (duration / 2) / 29.1;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println("0 cm");
// Jika jarak kurang dari safetyDistance, buka pintu
if (distance < safetyDistance) {
lcd.clear();
lcd.print("Pintu Terbuka");
lcd.setCursor(0, 1);
lcd.print("Selamat Datang!");
openDoor();
digitalWrite(ledPin, HIGH); // Nyalakan lampu LED
} else {
lcd.clear();
lcd.print("Pintu Tertutup");
closeDoor();
digitalWrite(ledPin, LOW); // Matikan lampu LED
}
delay(1000);
}
void openDoor() {
myServo.write(90); // Menggerakkan servo untuk membuka pintu
delay(2000); // Tahan pintu terbuka selama 2 detik
}
void closeDoor() {
myServo.write(0); // Menggerakkan servo untuk menutup pintu
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
r2:1
r2:2
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
servo1:GND
servo1:V+
servo1:PWM
led2:A
led2:C
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL