const int redLed = 2;
const int yellowLed = 3;
const int greenLed = 4;
const int buttonPin = 5;
bool buttonPressed = false;
void setup() {
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Enable internal pull-up resistor
}
void loop() {
// Check if the button is pressed
if (digitalRead(buttonPin) == LOW) {
buttonPressed = true;
}
if (buttonPressed) {
// Turn the traffic signal red for pedestrian crossing
digitalWrite(redLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
delay(5000); // Keep red for 5 seconds
buttonPressed = false; // Reset the button state
} else {
// Normal traffic signal operation
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, HIGH);
delay(5000); // Green for 5 seconds
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, HIGH);
delay(2000); // Yellow for 2 seconds
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, HIGH);
delay(5000); // Red for 5 seconds
}
}