// Define the pins for each traffic light
const int northRed = 2;
const int northYellow = 3;
const int northGreen = 4;
const int eastRed = 5;
const int eastYellow = 6;
const int eastGreen = 7;
const int southRed = 8;
const int southYellow = 9;
const int southGreen = 10;
const int westRed = 11;
const int westYellow = 12;
const int westGreen = 13;
void setup() {
// Set all pins as outputs
pinMode(northRed, OUTPUT);
pinMode(northYellow, OUTPUT);
pinMode(northGreen, OUTPUT);
pinMode(eastRed, OUTPUT);
pinMode(eastYellow, OUTPUT);
pinMode(eastGreen, OUTPUT);
pinMode(southRed, OUTPUT);
pinMode(southYellow, OUTPUT);
pinMode(southGreen, OUTPUT);
pinMode(westRed, OUTPUT);
pinMode(westYellow, OUTPUT);
pinMode(westGreen, OUTPUT);
// Initialize all lights to OFF
digitalWrite(northRed, LOW);
digitalWrite(northYellow, LOW);
digitalWrite(northGreen, LOW);
digitalWrite(eastRed, LOW);
digitalWrite(eastYellow, LOW);
digitalWrite(eastGreen, LOW);
digitalWrite(southRed, LOW);
digitalWrite(southYellow, LOW);
digitalWrite(southGreen, LOW);
digitalWrite(westRed, LOW);
digitalWrite(westYellow, LOW);
digitalWrite(westGreen, LOW);
}
void loop() {
// Phase 1: North Green, others Red
setLights(northGreen, northYellow, northRed, HIGH, LOW, LOW); // North Green
setLights(eastGreen, eastYellow, eastRed, LOW, LOW, HIGH); // East Red
setLights(southGreen, southYellow, southRed, LOW, LOW, HIGH); // South Red
setLights(westGreen, westYellow, westRed, LOW, LOW, HIGH); // West Red
delay(5000); // Green for 5 seconds
// Phase 2: North Yellow, others Red
setLights(northGreen, northYellow, northRed, LOW, HIGH, LOW); // North Yellow
delay(2000); // Yellow for 2 seconds
// Phase 3: East Green, others Red
setLights(northGreen, northYellow, northRed, LOW, LOW, HIGH); // North Red
setLights(eastGreen, eastYellow, eastRed, HIGH, LOW, LOW); // East Green
delay(5000); // Green for 5 seconds
// Phase 4: East Yellow, others Red
setLights(eastGreen, eastYellow, eastRed, LOW, HIGH, LOW); // East Yellow
delay(2000); // Yellow for 2 seconds
// Phase 5: South Green, others Red
setLights(eastGreen, eastYellow, eastRed, LOW, LOW, HIGH); // East Red
setLights(southGreen, southYellow, southRed, HIGH, LOW, LOW); // South Green
delay(5000); // Green for 5 seconds
// Phase 6: South Yellow, others Red
setLights(southGreen, southYellow, southRed, LOW, HIGH, LOW); // South Yellow
delay(2000); // Yellow for 2 seconds
// Phase 7: West Green, others Red
setLights(southGreen, southYellow, southRed, LOW, LOW, HIGH); // South Red
setLights(westGreen, westYellow, westRed, HIGH, LOW, LOW); // West Green
delay(5000); // Green for 5 seconds
// Phase 8: West Yellow, others Red
setLights(westGreen, westYellow, westRed, LOW, HIGH, LOW); // West Yellow
delay(2000); // Yellow for 2 seconds
}
// Helper function to set the state of a traffic light
void setLights(int greenPin, int yellowPin, int redPin, bool greenState, bool yellowState, bool redState) {
digitalWrite(greenPin, greenState);
digitalWrite(yellowPin, yellowState);
digitalWrite(redPin, redState);
}
NORTH SIDE
SOUTH SIDE
SOUTH SIDE SIDE
WEST SIDE