#include <Servo.h>
#define PIR_PIN 5 // Pin PIR motion sensor terhubung ke pin digital 2
#define LED_PIN 2 // Pin lampu LED terhubung ke pin digital 3
#define SERVO_PIN 9 // Pin servo motor terhubung ke pin digital 9
Servo servo; // Inisialisasi objek servo
int posisiAwal = 90;
void setup() {
pinMode(PIR_PIN, INPUT); // Set pin sensor PIR sebagai input
pinMode(LED_PIN, OUTPUT); // Set pin lampu LED sebagai output
servo.attach(SERVO_PIN); // Menghubungkan servo ke pin yang ditentukan
servo.write(posisiAwal); // Menyimpan posisi awal servo
}
void loop() {
int gerakanPIR = digitalRead(PIR_PIN);
if (gerakanPIR == HIGH) {
// Jika gerakan terdeteksi dan sebelumnya tidak ada gerakan
digitalWrite(LED_PIN, HIGH); // Update status lampu
openDoor(); // Buka pintu menggunakan servo
delay(1000);
closeDoor();
delay(1000);
} else {
digitalWrite(LED_PIN, LOW);
}
}
void openDoor() {
servo.write(50); // Buka pintu dengan memutar servo ke posisi 90 derajat
delay(1000); // Tunggu 1 detik untuk servo mencapai posisi
servo.write(0);
delay(1000);
}
void closeDoor() {
servo.write(90);
delay(1000);
}