#include <Servo.h>
#define PIR1_PIN 2
#define PIR2_PIN 3
#define PIR3_PIN 4
#define BUTTON1_PIN 5
#define BUTTON2_PIN 6
#define SERVO_PIN 9
Servo servo;
bool pir1_triggered = false;
bool pir2_triggered = false;
bool pir3_triggered = false;
unsigned long movement_start_time = 0;
const unsigned long movement_duration = 30000; // 30 seconds
void setup() {
pinMode(PIR1_PIN, INPUT);
pinMode(PIR2_PIN, INPUT);
pinMode(PIR3_PIN, INPUT);
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
servo.attach(SERVO_PIN);
}
void loop() {
if (digitalRead(PIR1_PIN) == HIGH) {
pir1_triggered = true;
movement_start_time = millis();
}
if (digitalRead(PIR2_PIN) == HIGH) {
pir2_triggered = true;
movement_start_time = millis();
}
if (digitalRead(PIR3_PIN) == HIGH) {
pir3_triggered = true;
movement_start_time = millis();
}
if ((millis() - movement_start_time) < movement_duration) {
if (pir1_triggered || pir2_triggered || pir3_triggered) {
servo.write(180);
}
} else {
servo.write(0);
pir1_triggered = false;
pir2_triggered = false;
pir3_triggered = false;
}
if (digitalRead(BUTTON1_PIN) == LOW) {
servo.write(180);
delay(50);
}
if (digitalRead(BUTTON2_PIN) == LOW) {
servo.write(0);
delay(50);
}
}