#include <Wire.h>
const int pirSensorPin = 15;
const int ldrSensorPin = 13;
const int ledPin1 = 2;
const int ledPin2 = 4;
const int ledPin3 = 5;
const int ledPin4 = 16;
bool motionDetected = false;
bool ledsOn = false;
void setup() {
Serial.begin(115200);
pinMode(pirSensorPin, INPUT);
pinMode(ldrSensorPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
int ldrStatus = analogRead(ldrSensorPin);
int pirStatus = digitalRead(pirSensorPin);
Serial.print("LDR: ");
Serial.print(ldrStatus);
Serial.print(" | PIR: ");
Serial.println(pirStatus);
if (pirStatus == HIGH) {
motionDetected = true;
} else {
motionDetected = false;
}
if (ldrStatus > 300 && !motionDetected) { // When surrounding is bright and no motion
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
ledsOn = false;
} else if (ldrStatus <= 300 && motionDetected) { // When surrounding is dark and motion
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
ledsOn = true;
} else if (ldrStatus > 300 && ledsOn) { // When surrounding is bright and lights are ON
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
ledsOn = false;
} else if (ldrStatus <= 300 && !motionDetected) { // When surrounding is dark and no motion
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
ledsOn = false;
}
delay(100);
}