@hans
Hoi Hans,
Bedankt voor de reactie!
Naar aanleiding van de feedback is dit nu de code:
int autoRood = 12; // Om de stoplichten voor auto toe te wijzen
int autoGeel = 11;
int autoGroen = 10;
int voetgangerRood = 9; // Om de stoplichten voor voetganger toe te wijzen
int voetgangerGroen = 8;
int knop = 2; // Indrukbare knop
int oversteektijd = 4000; // Tijd om als voetganger te kunnen oversteken
unsigned long changeTime; // Tijd sinds de knop is inngedrukt
void setup() {
pinMode(autoRood, OUTPUT);
pinMode(autoGeel, OUTPUT);
pinMode(autoGroen, OUTPUT);
pinMode(voetgangerRood, OUTPUT);
pinMode(voetgangerGroen, OUTPUT);
pinMode(knop, INPUT_PULLUP); // Drukknop op pin 2
digitalWrite(autoGroen, HIGH); // Als standaard groen aan
digitalWrite(voetgangerRood, HIGH); // Als standaard rood aan
attachInterrupt(digitalPinToInterrupt(0), changeLights, RISING);
}
void loop() {
if ( (millis() - changeTime) > 5000) // Bij het passeren van 5000 wordt Changetime weer bijgewerkt naar de starttijd
{
changeLights();
}
}
void changeLights() // De functie om de lichten te veranderen
{
digitalWrite(autoGroen, LOW); // groen uit
digitalWrite(autoGeel, HIGH); // geel aan
delay(500); // wacht 0,5 seconden
digitalWrite(autoGeel, LOW); // geel uit
digitalWrite(autoRood, HIGH); // rood aan
delay(1000); // wacht 1,0 seconde
digitalWrite(voetgangerRood, LOW); // voetganger rood uit
digitalWrite(voetgangerGroen, HIGH); // voetganger groen aan
delay(oversteektijd); // de vooraf ingestelde wachttijd
digitalWrite(voetgangerGroen, LOW);
{
}
digitalWrite(voetgangerRood, HIGH); // voetganger rood aan
digitalWrite(autoRood, LOW); // rood gaat uit
digitalWrite(autoGroen, HIGH);
digitalWrite(autoGeel, LOW); // geel gaat uit
changeTime = millis(); // Changetime heeft de waarde van millis
} // Herhaal / Loop
Ik ga dit zo snel mogelijk opsturen naar mijn docent, de feedback daarvan zal ik doorgeven.
In iedergeval heel erg bedankt voor het verbeteren.
Groet,
Lars