#include <ESP32Servo.h>
Servo barrier; // Servo for the barrier
int redLight = 13; // GPIO pin for Red light
int yellowLight = 12; // GPIO pin for Yellow light
int greenLight = 14; // GPIO pin for Green light
int delayTime = 3000; // Delay for light transitions
void setup() {
pinMode(redLight, OUTPUT);
pinMode(yellowLight, OUTPUT);
pinMode(greenLight, OUTPUT);
barrier.attach(25); // Attach servo to GPIO25
barrier.write(90); // Barrier starts closed (90 degrees)
}
void loop() {
// Red Light Phase
digitalWrite(redLight, HIGH);
digitalWrite(yellowLight, LOW);
digitalWrite(greenLight, LOW);
barrier.write(90); // Barrier remains closed
delay(delayTime);
// Yellow Light Phase
digitalWrite(redLight, LOW);
digitalWrite(yellowLight, HIGH);
digitalWrite(greenLight, LOW);
delay(delayTime);
// Green Light Phase
digitalWrite(redLight, LOW);
digitalWrite(yellowLight, LOW);
digitalWrite(greenLight, HIGH);
barrier.write(0); // Barrier opens (0 degrees)
delay(delayTime);
}