// Define the pins for each traffic light
#define RED_NORTH 23
#define YELLOW_NORTH 22
#define GREEN_NORTH 21
#define RED_SOUTH 13
#define YELLOW_SOUTH 12
#define GREEN_SOUTH 14
#define RED_EAST 4
#define YELLOW_EAST 2
#define GREEN_EAST 15
#define RED_WEST 19
#define YELLOW_WEST 18
#define GREEN_WEST 5
void setup() {
// Set the traffic light pins as outputs
pinMode(RED_NORTH, OUTPUT);
pinMode(YELLOW_NORTH, OUTPUT);
pinMode(GREEN_NORTH, OUTPUT);
pinMode(RED_SOUTH, OUTPUT);
pinMode(YELLOW_SOUTH, OUTPUT);
pinMode(GREEN_SOUTH, OUTPUT);
pinMode(RED_EAST, OUTPUT);
pinMode(YELLOW_EAST, OUTPUT);
pinMode(GREEN_EAST, OUTPUT);
pinMode(RED_WEST, OUTPUT);
pinMode(YELLOW_WEST, OUTPUT);
pinMode(GREEN_WEST, OUTPUT);
}
void loop() {
// Let North/South traffic pass
digitalWrite(RED_NORTH, LOW);
digitalWrite(RED_SOUTH, LOW);
digitalWrite(GREEN_NORTH, HIGH);
digitalWrite(GREEN_SOUTH, HIGH);
delay(10000); // wait for 10 seconds
digitalWrite(GREEN_NORTH, LOW);
digitalWrite(GREEN_SOUTH, LOW);
digitalWrite(YELLOW_NORTH, HIGH);
digitalWrite(YELLOW_SOUTH, HIGH);
delay(2000); // wait for 2 seconds
// Let East/West traffic pass
digitalWrite(YELLOW_NORTH, LOW);
digitalWrite(YELLOW_SOUTH, LOW);
digitalWrite(RED_NORTH, HIGH);
digitalWrite(RED_SOUTH, HIGH);
digitalWrite(RED_EAST, LOW);
digitalWrite(RED_WEST, LOW);
digitalWrite(GREEN_EAST, HIGH);
digitalWrite(GREEN_WEST, HIGH);
delay(10000); // wait for 10 seconds
digitalWrite(GREEN_EAST, LOW);
digitalWrite(GREEN_WEST, LOW);
digitalWrite(YELLOW_EAST, HIGH);
digitalWrite(YELLOW_WEST, HIGH);
delay(2000); // wait for 2 seconds
digitalWrite(YELLOW_EAST, LOW);
digitalWrite(YELLOW_WEST, LOW);
digitalWrite(RED_EAST, HIGH);
digitalWrite(RED_WEST, HIGH);
}