// North-South
#define NS_RED D12
#define NS_YELLOW D10
#define NS_GREEN D9
// East-West
#define EW_RED D5
#define EW_YELLOW D4
#define EW_GREEN D3
void setup() {
pinMode(NS_RED, OUTPUT);
pinMode(NS_YELLOW, OUTPUT);
pinMode(NS_GREEN, OUTPUT);
pinMode(EW_RED, OUTPUT);
pinMode(EW_YELLOW, OUTPUT);
pinMode(EW_GREEN, OUTPUT);
}
void loop() {
// 1. North-South GREEN | East-West RED
digitalWrite(NS_GREEN, HIGH);
digitalWrite(NS_YELLOW, LOW);
digitalWrite(NS_RED, LOW);
digitalWrite(EW_RED, HIGH);
digitalWrite(EW_YELLOW, LOW);
digitalWrite(EW_GREEN, LOW);
delay(5000);
// 2. North-South YELLOW
digitalWrite(NS_GREEN, LOW);
digitalWrite(NS_YELLOW, HIGH);
delay(2000);
// 3. North-South RED | East-West GREEN
digitalWrite(NS_YELLOW, LOW);
digitalWrite(NS_RED, HIGH);
digitalWrite(EW_RED, LOW);
digitalWrite(EW_GREEN, HIGH);
delay(5000);
// 4. East-West YELLOW
digitalWrite(EW_GREEN, LOW);
digitalWrite(EW_YELLOW, HIGH);
delay(2000);
// Reset to RED before next cycle
digitalWrite(EW_YELLOW, LOW);
digitalWrite(EW_RED, HIGH);
// digitalWrite(EW_GREEN, LOW);
}