Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

8Programmablaufpläne

Du wirst schon bemerkt haben, dass sich jedes Programm bisher stets gleich gliedert. Am Anfang kommen die Import-Anweisungen. Dann folgen einige Deklarationen, in denen Objekte erzeugt und an Variablen zugewiesen werden und schließlich die Endlosschleife mit teils verschachtelten Anweisungen und Kontrollstrukturen.

Bild

Der Start des Codes wird durch einen rechteckigen Block mit abgerundeten Ecken angezeigt. Alle Import-Anweisungen können in einem Programmablaufplan (kurz PAP) als Rechteck dargestellt werden. In den meisten Fällen lässt man diesen Block aber ganz weg!

Im zweiten Teil werden benötigte Objekte, die man benötigt (z.B. von der Klasse DigitalInOut) erzeugt (man sagt dazu Instanziieren). Dazu werden neue Variablen (z.B. led_red) angelegt (man sagt dazu Deklarieren) und die Objekte werden an diese Variablen gebunden (man sagt dazu Initialisieren).

Für einen einfachen Button sind das vier Schritte. Der letzte Schritt ist im Grunde nur eine Unterstützung. Man kann im Grunde auf ihn verzichten. Wozu du das Debauncer-Objekt brauchst, erfährst du im nächsten Kapitel.

Bild
led_blue  = digitalio.DigitalInOut(board.D12)
led_blue.direction  = digitalio.Direction.OUTPUT

button = digitalio.DigitalInOut(board.D13)
button.switch_to_input(pull=digitalio.Pull.DOWN)

Aber auch diese Blöcke können weggelassen werden, da es in einem Programmablaufplan um den Hauptteil des Programms geht!

Bild

Jetzt kommt der spannende Teile. Wenn du den PAP mit dem Code vergleichst, siehst du schnell welcher Block welcher Zeile zugeordnet ist.

while True:
    led_green.value = not button.value

    if led_green.value:
        led_red.value = False
    else:
        led_red.value = True

Der Profi hat natürlich schon erkannt, dass auch hier die if-Bedingung eigentlich nicht nötig ist.

Kannst du den Code entsprechend anpassen?


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?