8. calls en for-statement
voorbeeld van een call en for-statements:
algemene schrijfwijze for-statement:
for (argument) {
code;
}
of zoals in de code hieronder wordt aangegeven:
void setup() {
for (int i=2; i<6; i++) // dus (argument) maak van alle poorten 2 t/m 5 een uitgang (OUTPUT), i is een lokale variabele
{
pinMode (i,OUTPUT); // code
}
delay(1000);
}
-----------------------------------------
met call functie
// geen variabelen nodig
// functieblokken (i=2; i<6; i++) wordt 4x doorlopen
// for-statement niet afsluiten met punt-komma, maar na for statement nieuwe accolade openen voor code
// de variabele i betreft in dit geval de poorten 2,3,4,5
// die worden laag, LOW gemaakt
void setup() {
for (int i=2; i<6; i++) // maak van alle poorten 2 t/m 5 een uitgang (OUTPUT)
{
pinMode(i,OUTPUT);
}
delay(1000);
}
// volgend functieblok
void uit()
{
for (int i=2; i<6; i++)
{
digitalWrite(i,LOW);
}
delay(1000);
}
// loop functieblok
void loop()
{
uit(); // call vanuit void uit() , als void uit() 1x is doorlopen wordt het programma voortgezet naar void loop en begint bij uit();
for (int i=2; i<6; i++)
{
digitalWrite(i,HIGH);
delay(1000);
}
}
----------------------------------------
met call functie 2
// er worden geen variabelen gebruikt
// de setup wordt slechts 1x doorlopen:
void setup()
{
for (int i=2; i<6; i++)
{ // voor i=2,3,4,5 doe...
pinMode(i, OUTPUT); // led i = uitgang
}
}
// de loop wordt eindeloos herhaald:
void loop()
{ // begin loop
uit(); // call naar de functie uit() die hieronder staat
for (int i=2; i<6; i++)
{ // voor i=2,3,4,5 doe...
digitalWrite(i, HIGH); // led i = aan
delay(1000); // 1s wachten
}
} // einde van de loop
void uit()
{ // begin functie uit
for (int i=2; i<6; i++){ // voor i=2,3,4,5 doe...
digitalWrite(i, LOW); // led i = uit
}
delay(1000); // 1s wachten
} // einde functie uit() en terug naar de loop for functie
----------------------------------
for loops in combinatie met else-statements.
nog een voorbeeld van een for loop, in dit geval een optel lus van 1 t/m 9
void setup()
{
Serial.begin(9600);
}
Serial.begin(9600);
}
void loop()
{
for (int i=1;i<10;i++)
for (int i=1;i<10;i++)
{
Serial.println (i); // via de seriele monitor wordt de optelling 1 t/m 9 zichtbaar gemaakt.
delay(1000);
}
Serial.println (i); // via de seriele monitor wordt de optelling 1 t/m 9 zichtbaar gemaakt.
delay(1000);
}
}
------------
idem voorbeeld maar nu met een extra voorwaarde ingebouwd in de vorm van een "if-statement":
void setup()
{
Serial.begin(9600);
Serial.begin(9600);
}
void loop()
{
for (int i=1;i<10;i++)
for (int i=1;i<10;i++)
{
Serial.println (i);
delay(500);
if (i==8) Serial.println("negen"); // ander optie zou kunnen zijn: if (i>8) Serial.println("negen");
}
Serial.println (i);
delay(500);
if (i==8) Serial.println("negen"); // ander optie zou kunnen zijn: if (i>8) Serial.println("negen");
}
}
---------------
//voorbeeld van een for loop, optel lus van 1 t/m 9 met for, if , else statement
void setup()
{
Serial.begin(9600);
}
Serial.begin(9600);
}
void loop()
{
for (int i=1;i<10;i++)
{
Serial.println (i);
delay(500);
if (i==8) Serial.println("acht"); /* nu met extra else statement toegevoegd, dus alles wat niet overeenkomt met het getal 8 wordt omschreven als "cijfers"*/.
Serial.println (i);
delay(500);
if (i==8) Serial.println("acht"); /* nu met extra else statement toegevoegd, dus alles wat niet overeenkomt met het getal 8 wordt omschreven als "cijfers"*/.
else Serial.println ( "cijfers");
}
}
}