Met een for lus kan je een bepaald stukje code een vooraf bepaald aantal keer laten herhalen.
Wil je bijvoorbeeld een motor van 0 naar maximale snelheid laten gaan op een soepele manier door gebruik te maken van de analogWrite() dan kan je 256 keer analogWrite schrijven of gebruik maken van een for lus. Dit zal ervoor zorgen dat je code veel korter is en toch hetzelfde zal doen.
Gebruik : bestuderen van de mogelijkheden van een for lus
For-lus
uitleg : De for lus bestaat uit 3 gedeelten, je hebt de initialisatie, de testvoorwaarde en het aanpassen van de variabele.
Voorbeeld :
for (int i=0; i<3; i++){
// doe iets
}
eerst zal hierbij i gelijk worden aan 0 waarna de controle gedaan wordt of i kleiner is dan 3.
Omdat dit het geval is zal doe iets gedaan worden.
Na het uitvoeren van hetgeen in de for lus staat voert men i++ uit, hierdoor is i nu 1.
Dan kijkt men terug naar de voorwaarde, omdat 1 nog steeds kleiner is dan 3 zal doe iets nogmaals uitgevoerd worden. Na dit uitvoeren verhoogt men i terug met 1 zodat i gelijk wordt aan 2.
Aangezien 2 nog steeds kleiner is dan 3 zal doe iets voor de derde keer uitgevoerd worden, maar deze keer zal na het uitvoeren i met een vermeerderen en dus gelijk worden aan 3.
Omdat 3 niet meer kleiner is dan 3 zal doe iets nu niet meer uitgevoerd worden en het programma zal verder gaan met de code die na de for lus komt.
For toepassen voor instellen motorsnelheid
passen we dit nu toe voor het aansturen van de snelheid van de motor (onderstaand stukje code toont enkel de for die de snelheid aanpast en niet de volledige code om een motor aan te sturen) dan krijgen we het volgende.
for(int i=0; i<255; i++){
analogWrite(snelheid,i);
delay(100);
}
Hier zal hetzelfde gebeuren als daarnet maar in plaats van doe iets zal de huidige waarde van i als snelheid gebruikt worden voor de motorsturing. Ook zal hier geen 3 keer de actie worden uitgevoerd maar 255 keer omdat i begint op 0 en pas stopt als i gelijk is aan 255. Telkens zal ook hier maar 1 bij i komen na het uitvoeren van de actie.
omdat i dus van 0 naar 255 gaat zal analogwrite 255 keer uitgevoerd worden, telkens zal hierdoor de motor een klein beetje sneller draaien dan de 100ms ervoor. Bij het testen zal je wel merken dat de energie in het begin niet voldoende is om de motor te starten. Het is dus mogelijk dat je de motor hoort zoemen zonder dat er iets beweegt. Bij een motor is het dus beter dat je i in het begin niet op 0 zet maar bijvoorbeeld reeds op 50 zodat de motor genoeg energie krijgt om te beginnen met draaien.
For bij een looplicht
Een for lus kan je ook gebruiken voor een looplicht zoals je ziet in volgend filmpje. De code met commentaar kan je hier downloaden.
Volgende les : analyse van een probleemstelling
Tot nu toe heb je enkel de werking van code bestudeert maar nog geen analyse gedaan van een probleemstelling of van een probleemstelling een flowchart opgesteld. Hoe je een probleem analyseert en een flowchart opstelt lees je in deze tutorial.
Vorige les : De IF ELSE IF controlestructuur
De for lus wordt vaak gebruikt maar meestal komt ook de eerder geziene IF ELSE IF controlestructuur voor in een programma. Heb je vorige tutorial gemist dan kan je die hier nogmaals herbekijken.