#include <Servo.h>
int pirPin = 2; // PIR sensor input pin
int servoPin = 9; // Servo motor output pin
int pos = 0; // variable to store servo position
int pirState = LOW; // variable to store PIR sensor state
Servo myservo; // create servo object to control a servo
void setup() {
pinMode(pirPin, INPUT); // initialize PIR sensor pin as input
pinMode(servoPin, OUTPUT); // initialize servo motor pin as output
myservo.attach(servoPin); // attach the servo to the specified pin
myservo.write(pos); // initialize the servo to starting position
Serial.begin(9600); // initialize serial communication
}
void loop() {
pirState = digitalRead(pirPin); // read PIR sensor state
if (pirState == HIGH) { // if PIR sensor detects motion
Serial.println("Motion detected!");
for (pos = 0; pos <= 90; pos += 1) { // move servo to 90 degrees
myservo.write(pos); // set servo position
delay(15); // wait for servo to reach position
}
for (pos = 90; pos >= 0; pos -= 1) { // move servo back to starting position
myservo.write(pos); // set servo position
delay(15); // wait for servo to reach position
}
} else {
Serial.println("No motion detected.");
myservo.write(0); // move servo to starting position
}
delay(100); // wait for a short time before repeating loop
}