#include <Servo.h>
const int ldrPin = A0;
const int trigPin = 9;
const int echoPin = 10;
const int ledPin = 13;
const int servoPin = 6;
Servo barrierServo;
const int ldrThreshold = 400;
const int distanceThreshold = 20;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
barrierServo.attach(servoPin);
Serial.begin(9600);
}
void loop() {
int ldrValue = analogRead(ldrPin);
Serial.print("LDR: "); Serial.println(ldrValue);
// Read distance
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
Serial.print("Distance: "); Serial.println(distance);
if (ldrValue < ldrThreshold && distance < distanceThreshold) {
digitalWrite(ledPin, HIGH); // Light ON
barrierServo.write(90); // Barrier Up
} else {
digitalWrite(ledPin, LOW); // Light OFF
barrierServo.write(0); // Barrier Down
}
delay(200);
}