In diesem Beitrag machen wir weiter, wo wir mit dem letzten Beitrag aufgehört haben.
Konkret geht es um:
– Externe Schaltungen mit dem Pico verbinden;
– Widerstände berechnen;
– MicroPython: Einfache Funktionen, die For-Schleife und Abbruchbedingungen;
– Praxisbeispiel anhand der Simulation einer Ampelschaltung
Zuerst sei erwähnt, dass es für die Projekt jetzt ein öffentliches GitHub Repository gibt, wo alle relevanten Dokumente und Dateien, die ich in meinen Beiträgen erstelle, runtergeladen werden können.
Der Link zum Repo ist:
https://github.com/UncleNelson/pico-microPython
Zunächst wird nun einmal ein LED auf ein Breadboard gesteckt. LEDs (Light Emitting Diode) haben immer ein langes Bein (Anode) und ein kurzes Bein (Kathode). Es ist darauf zu achten, dass der Strom immer
(+) an Anode und
(-) an Katode
angeschlossen wird.
Vor der LED muss ein Widerstand sitzen. Ohne Widerstand wird die LED nicht lange überleben.
Der Aufbau ist nun also:
(+) -> Widerstand -> Anode der LED -> Kathode der LED -> (-)
Zur Berechnung der Größe des Widerstands kann die folgende Formel verwendet werden:
Widerstand(R) = Spannung(U) / Strom(I)
Zur Bestimmung des richtigen Widerstands kann entweder eine Farbcode-Tabelle verwendet werden, mit der man anhand der aufgedruckten, farbigen Ringe auf dem Widerstand seine Größe bestimmen kann, oder man verwendet ein Multimeter und mißt den Widerstand. Beides erkläre ich im Video zum Beitrag.
Hier noch einmal ein Beispiel einer Farbcode-Tabelle für Widerstände:

Es ergibt sich ein gesamter Schaltplan für alle drei LEDs der Ampel:

Wichtige Stellen im Code
Hier noch einmal die im Beitrag behandelten Code-Snippets.
led = machine.Pin(0, machine.Pin.OUT)
Der Pin mit der Nummer ‚0‘ dient als Ausgang (OUT) und bekommt den Namen ‚led‘
def ledAn(led):
led.value(1)
Eine Funktion wird definiert. Sie bekommt den Namen 'ledAn'. Der Funktion wird ein Parameter übergeben (led). Im Funktionsblock wird dann mit led.value(1) die LED eingeschaltet.
# ein einzeiliger Kommentar
Mit # wird in Python ein einzeiliger Kommentar eingeleitet. Alles, was dahinter steht, wird beim Übersetzen ignoriert.
try:
code....
except KeyboardInterrupt:
code....
Der try – Block für den Code aus, außer es passiert ein KeyboardInterrupt (also z.B. command + C), dann wird der except – Block ausgeführt.
for i in range(4):
print("Durchlauf: ", i)
Die for – Schleife iteriert durch eine range von 0 bis 3 (Also 4 Durchgänge). Dabei wird nach jedem Durchgang die Variable i um 1 erhöht. In ihrem Block wird mit print die Zeichenkette „Durchlauf: “ und angehängt der aktuelle Wert von i ausgegeben.
Die Ausgabe sieht dabei so aus:
Durchlauf: 0
Durchlauf: 1
Durchlauf: 2
Durchlauf: 3
def funktion(wert):
if wert < 3:
return
weitere code....
In der Funktion wird der Wert des übergebenen Parameters ‚wert‚ geprüft mit ‚if‚. Wenn der Wert kleiner als 3 ist ‚< 3‚ dann wird mit return die Funktion wieder verlassen, ohne dass der weitere code ausgeführt wird.