Omschrijving
De ‘for’-lus in Arduino is een manier om een stuk code meerdere keren achter elkaar uit te voeren zonder dat je die code steeds opnieuw hoeft te schrijven. Het werkt door eerst een startpunt in te stellen (zoals ‘i = 0’), dan te bepalen hoe lang de herhalingen doorgaan (bijvoorbeeld zolang ‘i’ minder is dan 5), en ten slotte te bepalen hoe de variabele verandert na elke herhaling (meestal door ‘i’ met 1 te verhogen). Dit is handig om bijvoorbeeld een LED meerdere keren te laten knipperen. In plaats van vijf keer dezelfde code te schrijven, gebruik je een ‘for’-lus om te zeggen: “Doe deze actie vijf keer”. Het maakt je programma korter en makkelijker te begrijpen.
Syntax
for(a;b;c){functies}
Parameters
a: hier geef je de begin waarde op, bijvoorbeeld ‘int i=1’
b: hier geef je aan hoe lang het uitgevoerd moet worden, bijvoorbeeld ‘i<11’
c: hier geef je aan hoe ‘i’ dient te veranderen, bijvoorbeeld ‘i=i+1’ (de verkorte schrijfwijze is: ‘i++’)
functies: dit zijn de commando regels die uitgevoerd dienen te worden zolang er aan de voorwaarde die bij b is opgegeven. Bijvoorbeeld zolang i kleiner is dan 11.
Geeft terug
Niets.
Voorbeeld
void setup() { Serial.begin(115200); } void loop() { for(int i=1 ; i<11 ; i=i+1 ){ Serial.print("i = "); Serial.println(i); } Serial.println("Klaar."); Serial.println(); delay(20000); // wacht 20 seconden }
Toelichting voorbeeld
setup()
De seriële poort wordt geopend om gegevens naar de seriële monitor te schrijven.
loop()
Op regel 6 wordt gebruik gemaakt van de ‘for’-lus. Hier krijgt ‘i’ de begin waarde ‘1’, wordt de lus uitgevoerd zolang ‘i’ kleiner is dan 11 en ‘i’ wordt elke keer met 1 verhoogt.
Dus regel 6 wordt uitgevoerd en gaat dan de lus uitvoeren (indien i kleiner is dan 11), dit zijn de regels 7 en 8. Daarna gaat hij weer naar regel 6 en ‘i’ wordt met 1 verhoogt. Er wordt gecontroleerd of ‘i’ nog altijd kleiner is als 11. Zo ja, de regels 7 en 8 worden weer uitgevoerd. Dit gaat zo verder totdat het ‘i’ 11 wordt, de controle wordt uitgevoerd en ‘i’ is dus NIET meer kleiner dan 11. De lus wordt nu niet meer herhaald.
Regels 10, 11 en 12 worden uitgevoerd en het programma gaat weer naar regel 6. De ‘for’-lus begint weer opnieuw. Hier krijgt ‘i’ de begin waarde ‘1’, wordt de lus uitgevoerd zolang ‘i’ kleiner is dan 11 en ‘i’ wordt elke keer met 1 verhoogt.
Dit herhaald zich totdat je de microprocessorboard uitzet.
Uitvoer
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
Klaar.
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
Klaar.
Bovenstaand blijft zich herhalen totdat de microcontrollerboard uitgezet wordt.
Notities en waarschuwingen
Je kunt hier verschillende type variabelen gebruiken voor ‘i’.