const int redLedPin = 21;
const int yellowLedPin = 22;
const int greenLedPin = 23;
const int blueLedPin = 19;
const int buttonPin = 18;
volatile bool pedestrianPressed = false;
void handleButtonPress() {
pedestrianPressed = true;
}
void setup() {
Serial.begin(115200);
pinMode(redLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(buttonPin), handleButtonPress, FALLING);
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
digitalWrite(greenLedPin, LOW);
digitalWrite(blueLedPin, LOW);
}
void loop(){
if (pedestrianPressed) {
Serial.println("Pedestrian button pressed!.");
digitalWrite(blueLedPin, HIGH);
delay(1000);
pedestrianPressed = false;
} else {
digitalWrite(redLedPin, HIGH);
digitalWrite(blueLedPin, LOW);
delay(1000);
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, HIGH);
digitalWrite(blueLedPin, LOW);
delay(1000);
digitalWrite(yellowLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
digitalWrite(blueLedPin, LOW);
delay(1000);
digitalWrite(greenLedPin, LOW);
}
delay(50);
}