#define TRIG_PIN 3
#define ECHO_PIN 2
#define LDR_PIN A0
#define LED_PIN 13
long duration;
int distance;
int ldrValue;
int ldrThreshold = 500; // Adjust calibration value
void setup()
{
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LDR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
int getDistance()
{
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.0343 / 2;
return distance;
}
void loop()
{
ldrValue = analogRead(LDR_PIN);
distance = getDistance();
Serial.print("LDR: ");
Serial.print(ldrValue);
Serial.print(" Distance: ");
Serial.print(distance);
Serial.println(" cm");
bool isDark = ldrValue > ldrThreshold;
bool personDetected = distance < 30;
if(isDark && personDetected)
{
digitalWrite(LED_PIN, HIGH);
}
else
{
digitalWrite(LED_PIN, LOW);
}
delay(100);
}