Steuerung / Verzweigung

sonst

sonst-Block

Block

Der sonst Block kann als Ergänzung des falls Blocks gesehen werden. Er kann nur direkt im Anschluss an einen zuvor gesetzten falls oder sonst falls Block gesetzt werden. Die Positionierung unter anderen Blöcken ist in ArduBlock zwar grundsätzlich möglich, jedoch wird der Compiler der Arduino IDE hier einen Fehler melden und den Code nicht auf den Microcontroller laden können.
Der sonst Block ist mit den falls und sonst falls Blöcken verwandt. Auch mit ihm lässt sich eine Verzweigung erstellen.
Allerdings ist diese Verzweigung nicht an eine teste Bedingung geknüpft.

Für den folgenden Abschnitt wird davon ausgegangen, dass der falls bzw. sonst falls Block verstanden wurde. Diese Blöcke prüfen Bedingungen darauf ob sie wahr oder falsch sind und führen dann bei einer wahren Bedingung ein vorgegebenes Stück Code aus. Falls die Bedingungen eines falls Blocks und eventuell noch darauffolgenden sonst falls Blöcken alle nicht erfüllt, also FALSE sind, wird keine der unter dann eingegebenden Codeabschnitte ausgeführt.
Hier kommt nun der sonst Block ins Spiel. Dieser kann zum Absichern von Verzweigungen verwendet werden, so dass das Programm gezwungen ist einen Zweig zu gehen auch wenn alle anderen Bedingungen nicht erfüllt sind. Darum besitzt der sonst Block auch keine teste Bedingung, denn seine Bedingung ist, dass die Bedingungen der falls und sonst falls Blöcke an die er angehängt ist alle nicht erfüllt sind. Im Beispiel wird dies klarer.

dann

In den dann Abschnitt kann eine Folge von weiteren Blöcken zu Anweisung von Befehlen eingefügt werden. Dies kann zum Beispiel ein digitalWrite Block sein, der einen Pin HIGH oder LOW schält oder eine Variable, die auf einen bestimmten Wert gesetzt werden soll und so weiter.

Beispiel

Nun soll das Beispiel aus der falls Block-Referenz wieder herangezogen werden. Wir gehen davon aus, dass eine Variable namens temperatur angelegt wurde, die die aktuelle Temperatur in °C angibt. Der Ausgang des Pin 2 kontrolliert einen Ventilator. Wenn die Temperatur größer als 28°C ist soll der Ventilator eingeschaltet werden. Andernfalls soll er ausgeschaltet werden, indem der Pin 2 auf LOW geschaltet wird.

Für die zweite Bedingung soll ein sonst Block verwendet werden.

So könnte das Beispiel in ArduBlock aussehen:

else-besipiel

Code

Im Code für den Arduino wird der Baustein mit der Funktion else{dann} umgesetzt. ("else" ist Englisch und heißt übersetzt "sonst" oder "andernfalls") Der auszuführende Code wird in die geschweiften Klammern {} geschrieben.

Im Code würde das Beispiel dann folgendermaßen aussehen:

if (( temperatur > 28 )) {
  digitalWrite( 2 , HIGH );
}
else {
  digitalWrite( 2 , LOW );
}