//Pin Definitions
const int vehicleGreen = 2;
const int vehicleYellow = 18;
const int vehicleRed = 4;
const int pedestrianGreen = 5;
const int pedestrianRed = 15;
const int switchPin = 7;
//Variable to keep track of state
int state = 1;
void setup() {
//Set all pins as output
pinMode(vehicleGreen, OUTPUT);
pinMode(vehicleYellow, OUTPUT);
pinMode(vehicleRed, OUTPUT);
pinMode(pedestrianGreen, OUTPUT);
pinMode(pedestrianRed, OUTPUT);
pinMode(switchPin, INPUT);
//Initial state
digitalWrite(vehicleGreen, HIGH);
digitalWrite(vehicleYellow, LOW);
digitalWrite(vehicleRed, LOW);
digitalWrite(pedestrianGreen, LOW);
digitalWrite(pedestrianRed, HIGH);
}
void loop() {
//Check if switch is pressed
if(digitalRead(switchPin) == HIGH) {
if(state == 1) {
state = 2;
digitalWrite(vehicleGreen, LOW);
digitalWrite(vehicleYellow, LOW);
digitalWrite(vehicleRed, HIGH);
digitalWrite(pedestrianGreen, HIGH);
digitalWrite(pedestrianRed, LOW);
delay(3000);
} else if(state == 2) {
state = 1;
digitalWrite(vehicleGreen, LOW);
digitalWrite(vehicleYellow, HIGH);
digitalWrite(vehicleRed, LOW);
digitalWrite(pedestrianGreen, LOW);
digitalWrite(pedestrianRed, HIGH);
delay(5000);
}
}
}