#include <Servo.h>
const int pirPin = 2;
const int ldrPin = A0;
const int ledPin = 13;
const int buzzerPin = 4;
const int servoPin = 9;
Servo myservo;
int pos = 0;
bool isServoOpen = false;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ldrPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
myservo.attach(servoPin);
Serial.begin(9600);
}
void loop() {
int pirState = digitalRead(pirPin);
int ldrValue = analogRead(ldrPin);
Serial.println(ldrValue);
if (pirState == HIGH && ldrValue < 500) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000);
if (!isServoOpen) {
updateServo(180);
isServoOpen = true;
}
else {
updateServo(0);
isServoOpen = false;
}
}
else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
if (isServoOpen) {
updateServo(0);
isServoOpen = false;
}
}
delay(100);
}
void updateServo(int position) {
for (pos = pos; pos <= position; pos += 1) {
myservo.write(pos);
delay(15);
}
for (pos = pos; pos >= position; pos -= 1) {
myservo.write(pos);
delay(15);
}
}