#include <Servo.h>
Servo myservo;
int pirPin = 2; // Pin untuk sensor PIR
int servoPin = 9; // Pin untuk motor servo
int relayPin = 10; // Pin untuk relay
int ledPin = 13; // Pin untuk LED status
bool motionDetected = false;
void setup() {
myservo.attach(servoPin);
pinMode(pirPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(relayPin, LOW); // Relay dalam keadaan mati saat awalnya
}
void loop() {
motionDetected = digitalRead(pirPin);
if (motionDetected) {
// Menggerakkan motor servo beberapa kali
for (int i = 0; i <= 180; i += 10) {
myservo.write(i); // Menggerakkan motor servo ke sudut tertentu
delay(10); // Menunggu 1 detik sebelum bergerak lagi
}
for (int i = 180; i >= 0; i -= 10) {
myservo.write(i); // Menggerakkan motor servo ke sudut tertentu
delay(10); // Menunggu 1 detik sebelum bergerak lagi
}
myservo.write(90); // Menggerakkan motor servo ke posisi tertentu
digitalWrite(relayPin, HIGH); // Mengaktifkan relay untuk menyalakan lampu LED
digitalWrite(ledPin, HIGH); // Menghidupkan LED status
delay(10); // Lampu tetap menyala selama 2 detik
} else {
myservo.write(0); // Mengembalikan motor servo ke posisi awal
digitalWrite(relayPin, LOW); // Mematikan relay untuk mematikan lampu LED
digitalWrite(ledPin, LOW); // Mematikan LED status
}
}