#include <Servo.h>
#define PIR_PIN 2 // Pin digital yang terhubung ke sensor PIR
#define LED_PIN 8 // Pin digital yang terhubung ke LED
#define BUZZER_PIN 9 // Pin digital yang terhubung ke buzzer
#define SERVO_PIN 10 // Pin digital yang terhubung ke motor servo
int pirState = LOW; // Variabel untuk menyimpan status sensor PIR
int lastPirState = LOW; // Variabel untuk menyimpan status sensor PIR sebelumnya
Servo servoMotor; // Objek untuk mengontrol motor servo
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
servoMotor.attach(SERVO_PIN); // Menghubungkan motor servo ke pin
}
void loop() {
pirState = digitalRead(PIR_PIN); // Membaca status sensor PIR
if (pirState == HIGH && lastPirState == LOW) {
// Gerakan terdeteksi untuk pertama kali
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
tone(BUZZER_PIN, 1000); // Nyalakan buzzer
// Gerakkan motor servo ke posisi tertentu (misalnya, pintu terbuka)
servoMotor.write(90); // Posisi servo yang diinginkan (misalnya, 90 derajat)
delay(1000); // Tunggu sejenak
noTone(BUZZER_PIN); // Matikan buzzer
digitalWrite(LED_PIN, LOW); // Matikan LED
// Kembali posisi motor servo ke posisi awal (misalnya, pintu tertutup)
servoMotor.write(0); // Posisi servo awal (misalnya, 0 derajat)
}
lastPirState = pirState; // Simpan status sensor PIR sebelumnya
}