Arduino, Einsteiger, Making, Programmieren

Verzweigungen mit Arduino

Grundsätzlich führt der Arduino einfach nur lauter Befehle nacheinander aus. Möchte man aber, dass in bestimmten Situationen andere Befehle ausgeführt werden, muss man eine Fallunterscheidung programmieren. Man spricht auch von Verzweigungen oder if-Abfragen. Dabei prüft man zunächst, ob eine bestimmte Bedingung erfüllt ist, also z. B. ob gerade ein Taster gedrückt wird. Und nur, wenn das der Fall ist, dann werden bestimmte Befehle ausgeführt. Es ist also eine wenn-dann-Anweisung.

In dem kleinen Beispiel wird also zunächst geprüft, ob die Variable zahl den Wert 1 enthält (Achtung, für so einen Vergleich muss man zwei Gleichheitszeichen schreiben!). Der Befehl in Zeile 2, also das Einschalten der eingebauten LED, wird nur dann ausgeführt, wenn die Überprüfung erfolgreich war. Oder genauer gesagt: Wenn die Behauptung „zahl ist gleich 1“ wahr war. Für alle anderen Werte als 1 ist die Aussage falsch. Möchte man nun für alle Fälle, in denen zahl nicht 1 ist, die LED ausschalten, kann man das ganz einfach mit einer wenn-dann-sonst-Anweisung tun:

Und was, wenn ich noch mehr Fälle unterscheiden möchte? Vielleicht ist an Pin 12 noch eine LED angeschlossen, die immer dann leuchten soll, wenn zahl == 2 gilt.

In Zeile 3 wird also noch einmal nachgefragt. Das geschieht allerdings nur, wenn die erste Bedingung ( zahl == 1) nicht erfüllt war. Und nur, wenn die zweite Bedingung auch nicht erfüllt ist, wird der Block nach dem else ausgeführt, sozusagen die „Resterampe“. Und wie du siehst, darf man zwischen die geschweiften Klammern { ... } auch gleich mehrere Befehle schreiben.

Zum Ausprobieren empfehle ich dir, den folgenden Quelltext auf deinen Arduino zu laden:

Ändere auch mal den Wert für die Variable zahl in Zeile 6 und lade das Programm erneut hoch. Das ist natürlich etwas umständlich und nicht besonders sinnvoll, aber stell dir einfach vor, der Wert würde von einem Taster kommen. 1 bedeutet: Taster gedrückt. 0 bedeutet: Taster nicht gedrückt. Dann könntest du mit dem Taster die LED ein- und ausschalten.

Schreibe eine Antwort