int redLed = 2;
int yellowLed = 3;
int greenLed = 4;
int pedestrianButton = 5;
int buttonState = 0;
void setup() {
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(pedestrianButton, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(pedestrianButton);
if (buttonState == HIGH) {
// Pedestrian button pressed
pedestrianMode();
} else {
// Normal traffic light operation
normalOperation();
}
}
void changeColor(int red, int yellow, int green, int duration) {
digitalWrite(redLed, red);
digitalWrite(yellowLed, yellow);
digitalWrite(greenLed, green);
delay(duration * 1000);
}
void normalOperation() {
changeColor(HIGH, LOW, LOW, 5); // Red for 5 seconds
changeColor(LOW, HIGH, LOW, 2); // Yellow for 2 seconds
changeColor(LOW, LOW, HIGH, 5); // Green for 5 seconds
}
void pedestrianMode() {
// Pedestrian mode: Yellow for 1 second, Green for 5 seconds
changeColor(LOW, HIGH, LOW, 1); // Yellow for 1 second
changeColor(LOW, LOW, HIGH, 5); // Green for 5 seconds
normalOperation(); // Continue with normal traffic light operation
}