volatile bool autoGroen = HIGH; //Hier worden alle stoplichten op hun standaard waarde gezet
volatile bool autoOranje = LOW;
volatile bool autoRood = LOW;
volatile bool voetGroen = LOW;
volatile bool voetOranje = LOW;
volatile bool voetRood = HIGH;
volatile bool buttonPressed = false; //Hier wordt de standaard waarde van de knop gezet
void setup() {
pinMode(34, INPUT); //Input van de knop
pinMode(13, OUTPUT); //autoGroen
pinMode(12, OUTPUT); //autoOranje
pinMode(14, OUTPUT); //autoRood
pinMode(18, OUTPUT); //voetGroen
pinMode(19, OUTPUT); //voetOranje
pinMode(21, OUTPUT); //voetRood
Serial.begin(9600);
attachInterrupt(34, interrupt, FALLING); //Hier wordt de interrupt opgehaald
}
void loop() {
digitalWrite(13, autoGroen); //Groen voor de autos en rood voor de voetgangers
digitalWrite(21, voetRood);
if (buttonPressed == true) {
//Serial.println(buttonPressed);
autoOranje = !autoOranje; //hier gaat oranje aan en groen uit voor de autos
digitalWrite(12, autoOranje);
autoGroen = !autoGroen;
digitalWrite(13, autoGroen);
delay(500); //Wacht .5 seconden
autoRood = !autoRood; //Hier gaat rood aan en oranje uit voor de autos
digitalWrite(14, autoRood);
autoOranje = !autoOranje;
digitalWrite(12, autoOranje);
voetGroen = !voetGroen; //Hier gaat groen aan en rood uit voor de voetgangers
digitalWrite(18, voetGroen);
voetRood = !voetRood;
digitalWrite(21, voetRood);
delay(4000); //Wacht 4 seconden
voetOranje = !voetOranje; //Hier gaat Oranje aan en groen uit voor de voetgangers
digitalWrite(19, voetOranje);
voetGroen = !voetGroen;
digitalWrite(18, voetGroen);
delay(500); //Wacht .5 seconden
voetRood = !voetRood; //Hier gaat rood aan en oranje uit voor de voetgangers
digitalWrite(21, voetRood);
voetOranje = !voetOranje;
digitalWrite(19, voetOranje);
autoGroen = !autoGroen; //Hier gaat groen aan en rood uit voor de autos
digitalWrite(13, autoGroen);
autoRood = !autoRood;
digitalWrite(14, autoRood);
buttonPressed = false; //Hier wordt de variable van de knop teruggezet naar originele waarde
}
}
void interrupt() { //Als knop ingedrukt wordt wordt de waarde van de variable aangepast
buttonPressed = true;
}