@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
This post was modified 4 years ago by
lars