// 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);

}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
r1:1
r1:2
led2:A
led2:C
r2:1
r2:2
led3:A
led3:C
r3:1
r3:2
led4:A
led4:C
r4:1
r4:2
led5:A
led5:C
r5:1
r5:2
led6:A
led6:C
r6:1
r6:2
led7:A
led7:C
r7:1
r7:2
led8:A
led8:C
r8:1
r8:2
led9:A
led9:C
r9:1
r9:2
led10:A
led10:C
r10:1
r10:2
led11:A
led11:C
r11:1
r11:2
led12:A
led12:C
r12:1
r12:2