Eine an einem Mikrocontroller (µC) angeschlossene LED soll im Sekundentakt blinken
Der Aufbau erfolg auf einem Breadboard (Steckboard). Die Verschaltung erfolgt anhand folgender Darstellung:
1x ESP32 oder ESP8266 Board mit MicroPython
1x 180 Ohm Widerstand
1x LED rot
einige Drahtbrücken
In unserem zweiten Programm lernen wir, was Variablen sind, wie diese genutzt werden können und wie wir mit einer Schleife das Programm dauerhaft laufen lassen können.
Ein µC ist besonders dafür geeignet, sich ständig wiederholende Aufgaben abzuarbeiten. Eine LED blinken zu lassen, ist eben eine solche Aufgabe. Dabei wird der Port, den wir im ersten Teil des Kurses manuell umgeschaltet haben, automatisch umgeschaltet. Man spricht auch vom toggeln eines Ports. Dabei wird der Port jeweils zwischen “AN” = 1 und “AUS” = 0 umgeschaltet.
In unserem Aufbau haben wir ein Beinchen der LED an 3,3V angeschlossen. Somit kann nur dann ein Strom durch die LED fließen - also die LED leuchtet, wenn wir den Port unseres µC auf 0 = Masse setzen.
Zu Beginn unseres Programms setzen wir ein Variable. Eine Variable ist ein Platzhalter, in den wir Informationen speichern können. Es gibt verschiedene Daten-Typen, die je nach dem wofür sie gebraucht werden verwendet werden einer Variablen zugeordnet werden können. Bei einigen Programmiersprachen muss sehr genau drauf achten, welchen Typ man benötigt. Unsere Programmiersprache benötigt keine Definition des Typs, zur Vollständigkeit sollen hier aber mal einige Daten-Typen genannt werden:
INTEGER - dieser Daten-Typ kann nur ganze Zahlen speichern
FLOAT - mit diesem Typ kann man Zahlen mit Nachkommastellen speichern
BOOLEAN - bei diesem Typ gibt es nur 2 Zustände: Wahr oder Falsch
CHAR - unter CHAR versteht man Zeichen oder Buchstaben, manchmal wird auch der Begriff STRING genutzt, wenn über Zeichen und Buchstaben (Worte) spricht
Die oben genannte Liste ist nicht komplett. In den Programmiersprachen gibt es noch eine Reihe von anderen Daten-Typen, auf die wir vielleicht später nochmal eingehen.
Beginnen wir mit unserem Programm:
set LEDStatus to erlaubt es uns also, den Wert true der Variablen zuzuordnen. Somit wird die Variable LED_Status als BOOLEAN definiert und das Ergebnis in der Variablen ist WAHR oder 1. Oftmals spricht man auch vom Initialisieren einer Variablen mit vorladen eines Wertes.
Da wir ja die LED blinken lassen wollen, brauchen wir eine Möglichkeit, den Status des Ports unseres µC zu verändern. Dazu verwendet man eine WHILE Schleife. Diese Schleife wird solange durchlaufen, solange die Bedingung, die man definiert hat, WAHR (true) ist.
Man könnte also z. Beispiel eine Variable mit dem Wert 10 definieren und bei jeder Wiederholung den Wert 1 von der Variablen abziehen. In der WHILE Schleife würde mann als Bedingung dann definieren: Wert_der_Variablen > 0
Die Schleife würde dann 10 mal durchlaufen, bevor das Programm beendet wird.
REPEAT bedeutet WIEDERHOLE → also wiederhole solange, wie das Ergebnis WAHR ist. In diesem Beispiel wurde das Ergebnis fest auf WAHR gesetzt, das bedeutet, dass die Schleife nie beendet wird.
Innerhalb der Schleife wird der PIN D14 des µC mit dem Inhalt der Variablen LED_Status gesetzt. Da wir zu Beginn unseres Programms die Variable mit dem Wert WAHR (true) gesetzt haben, wird der PIN jetzt auf +3,3V gesetzt.
In unserer Verkabelung, haben wir ein Bein der LED fest auf +3,3V gesetzt. Das anderer Bein der LED ist an dem PIN D14 angeschlossen - somit liegen an beiden Anschlüssen jetzt +3,3V an und die LED leuchtet nicht.
In unserem Programm warten wir jetzt 1 Sekunde. Der Befehl dazu lautet DELAY. Hier kann man auch andere Werte eingeben → probiert es doch mal aus!
Der letzte Teil in der Schleife dienst dazu, den Wert der Variablen LEDStatus zu verändern. Bisher ist der Wert ja WAHR (true). Damit die LED leuchten kann, muss dieser aber FALSCH (false) werden. Dies können wir mit einer Funktion TEST erreichen, welche eine WENN (if) Abfrage beinhaltet. Wir überprüfen also den Wert der Variablen LED_Status und wenn dieser WAHR (true) ist wird er auf FALSCH (false) gesetzt. Ist der Wert FALSCH (false), wird er wieder auf WAHR (true) gesetzt. Somit ändert sich in jedem Durchlauf der Schleife der Wert für den PIN, an dem die LED angeschlossen ist von WAHR (true) auf FALSCH (false) und zurück → die LED blinkt.
Das komplette Programm sieht dann wie folgt aus:
Das Programm zum Laden in BIPES findet man hier.