Werking code - Alberdingk-Thijm-College/4-vwo-arduino-2018-2019-thijs-sepp-en-wik GitHub Wiki
Werking code
Op deze pagina word de code uitgelegd.
De setup
In het begin van de code worden via variabelen de verschillende punten waar de leds die de stoplichten voorstellen aan getallen gekoppeld: int r1 = 13;
Hierna word in de functie setUp() de ints van die de leds gekoppeld aan een modus (OUTPUT, INPUT). Een voorbeeld: pinMode(r1, OUTPUT);.
De functies
Hierna worden de functies gemaakt die de fases van het stoplicht veranderen. Een voorbeeld van zo'n functie is:
void licht1opGroen() {
digitalWrite(v1, LOW);//voetganger1 uit
digitalWrite(r1, LOW);//rood1 uit
digitalWrite(r2, HIGH);//rood2 aan
digitalWrite(r3, HIGH);//rood3 aan
digitalWrite(r4, HIGH);//rood4 aan
digitalWrite(g1, HIGH);//groen1 aan
digitalWrite(g2, LOW);//groen2 uit
digitalWrite(g3, LOW);//groen3 uit
digitalWrite(g4, LOW);//groen4 uit
}
Deze functie laat het eerste stoplicht op groen gaan. In deze functie word eerst het voetgangerslichtje uitgezet, daarna worden alle rode lichtjes aangepast en als laatste worden de groene lampjes aangepast.
De hoofdloop
In de hoofdloop word alle code die het kruispunt laten werken uitgevoerd. Dit word gedaan in de functie loop().
Aan het begin van iedere ronde code word eerst gekeken wat de status van de knoppen is. Dit word gedaan om te kunnen lezen of iemand wil oversteken of er een bus aankomt.
Hierna komt er een stuk code dat eerst kijkt of er op de knop van de buslijn word gedrukt, dit gaat met een if() statement. Als dit zo is gaat licht 1 op groen (de buslijn) als dit niet zo is word er via else if() gekeken of de voetgangers knop word ingedrukt, zo ja? het voetgangers licht gaat op groen. Als beide knoppen niet worden ingedrukt gaat het volgende stoplicht in de cyclus aan. Na deze dingen word er een delay van 2,5 seconden ingevoerd om te zorgen dat mensen naar de overkant kunnen.