Block
Der wiederhole und zaehle
Block zählt zu den Schleifen. Anders jedoch als die wiederhole fortlaufend
Schleife besitzt die wiederhole und zaehle
Schleife eine Abbruchbedingung.
Diese wird dem Block als mal
Parameter übergeben. Der wiederhole und zaehle
Block ist dem wiederhole
Block sehr ähnlich.
Der mal
Parameter gibt die Anzahl an, wie of die Schleife durchlaufen werden soll und ist damit auch deren Abbruchbedingung.
Der Code, welcher in dem Befehle
Platz dem Block übergeben wird, wird entsprechend oft durchlaufen.
Im Variable
Parameter wird eine analoge Variable übergeben, diese wird pro Schleifendurchlauf um 1 erhöht.
Variable
In den Variable
Parameter muss eine analoge Variable eingesetzt werden. Diese wird auf 0 gesetzt sobald der wiederhole und zähle
Block erreicht wird.
In den angegebenen Befehlen kann diese Variable dann genutzt werden um zum Beispiel einen Zähler zu bauen.
mal
In den mal
Parameter kann eine positive ganze Zahl oder Variable eingesetzt werden. Diese gibt an wie oft die unter Befehle
eingetragenen Blöcke durchgelaufen werden
sollen.
Befehle
In den Befehle
Abschnitt kann eine Folge von Anweisungen eingefügt werden.
Dies kann zum Beispiel ein digitalWrite
Block sein, der einen Pin HIGH
oder LOW
schält oder eine Variable, die gesetzt werden soll
oder sogar weitere wiederhole und zähle
Blöcke. Jedoch empfiehlt es sich nicht mehrerer dieser Blöcke zu verschachteln, da die Rechenzeit sich erheblich verlängern kann.
Beispiel
Als Beispiel wollen wir nun einen Zähler basteln, der von 0 bis 10 hochzählt
Die Zählvariable behält dabei ihren Standartnamen loc_Zaehlwert.
In dem Parameter mal
wird 11 eingetragen, da der Sprung von 0 auf 1 mit berücksichtigt werden muss und die 10 noch ausgegeben werden soll.
Bei jedem Durchlauf wird erst der String "Zähler: " und dann der aktuelle Wert der loc_Zaehlwert
Variable in den
seriellen Monitor geschrieben. Der Serial print
Block ist so eingestellt, dass nach jeder Ausführung eine neue Zeile im seriellen
Monitor begonnen wird. Jeder Werte wird also in eine neue Zeile geschrieben. Die Variable loc_Zaehlwert
wird automatisch nach jedem Durchlauf vom Block erhöht.
In ArduBlock könnte das so aussehen:
Die Ausgabe im seriellen Monitor sieht dann wie folgt aus:
Wert: 0
Wert: 1
Wert: 2
Wert: 3
Wert: 4
Wert: 5
Wert: 6
Wert: 7
Wert: 8
Wert: 9
Wert: 10
Würde man jetzt allerdings zum Beispiel einen Zähler wollen, der von 10 bis 20 zählt, dann kann man bei der Ausgabe immer den Variablenwert + 10 rechnen.
In ArduBlock könnte das so aussehen:
Die Ausgabe im seriellen Monitor sieht dann wie folgt aus:
Wert: 10
Wert: 11
Wert: 12
Wert: 13
Wert: 14
Wert: 15
Wert: 16
Wert: 17
Wert: 18
Wert: 19
Wert: 20
Code
Der Abschnitt zum Code ist etwas komplizierter als der Block an sich und muss für dessen Anwendung nicht verstanden worden sein.
Im Code für den Arduino wird der Baustein mit for(variable und mal){Befehle}
umgesetzt.
Wie der for
Befehl funktioniert ist in der Block-Referenz zum wiederhole
Block ausführlicher erklärt.
Im Code würde das Beispiel 1 dann folgendermaßen aussehen:
for(int loc_Zaehlwert = 0; loc_Zaehlwert < 11; loc_Zaehlwert++) {
Serial.print("Wert: ");
Serial.print(loc_Zaehlwert );
Serial.println();
}
Das Beispiel 2 könnte dann so aussehen:
for(int loc_Zaehlwert = 0; loc_Zaehlwert < 11; loc_Zaehlwert++) {
Serial.print("Wert: ");
Serial.print(loc_Zaehlwert +10);
Serial.println();
}