Steuerung / Schleifen

wiederhole und zaehle

wiederhole
Für Erklärung auf einzelne Komponenten klicken.

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:

beispiel-zum-wiederhole-und-zähle-block

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:

zweites-beispiel-zum-wiederhole-und-zähle-block

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();
}