int redPins[] = {1, 4, 7, 10}; // Red light pins
int yellowPins[] = {2, 5, 8, 11}; // Yellow light pins
int greenPins[] = {3, 6, 9, 12}; // Green light pins
void setup() {
// Set all pins as OUTPUT
for (int i = 0; i < 4; i++) {
pinMode(redPins[i], OUTPUT);
pinMode(yellowPins[i], OUTPUT);
pinMode(greenPins[i], OUTPUT);
}
// Ensure all lights start as RED
for (int i = 0; i < 4; i++) {
digitalWrite(redPins[i], HIGH); // All red ON
digitalWrite(yellowPins[i], LOW); // All yellow OFF
digitalWrite(greenPins[i], LOW); // All green OFF
}
}
void loop() {
for (int i = 0; i < 4; i++) { // Loop through each traffic light
// Ensure all lights remain RED except the active one
for (int j = 0; j < 4; j++) {
digitalWrite(redPins[j], HIGH);
digitalWrite(yellowPins[j], LOW);
digitalWrite(greenPins[j], LOW);
}
delay(1000);
// Activate GREEN for the current traffic light
digitalWrite(redPins[i], LOW); // Turn off red
digitalWrite(greenPins[i], HIGH); // Turn on green
delay(1000); // Green for 1 second
// Change to YELLOW
digitalWrite(greenPins[i], LOW);
digitalWrite(yellowPins[i], HIGH); // Turn on yellow
delay(1000); // Yellow for 1 second
// Change back to RED
digitalWrite(yellowPins[i], LOW);
digitalWrite(redPins[i], HIGH); // Turn on red
delay(1000); // Red for 1 second
}
}