Kleine LED ganz Groß
Jetzt, da wir geklärt haben, wofür der ganze Schnickschnack am Pi gut ist, machen wir uns nun daran, das erste, wahre Meisterstück zu vollführen: die große Erleuchtung einer kleinen LED. Suche dir das Breadboard, ein paar Jumper-Kabel und eine LED deiner Wahl aus dem Starter-Kit (wir empfehlen natürlich die rote) und schließe alles wie auf dem Bild an. Achte bitte darauf, dass das kurze Bein der LED über den Widerstand an Ground (GND) angeschlossen ist, sonst wird die Schaltung nicht funktionieren – später mehr dazu.
Anschlüsse am Pi | Anschlüsse an der LED |
GPIO18 Langes | Bein LED |
GND (Ground) | Kürzeres Bein LED + 220Ω Widerstand |
Wenn alles richtig angeschlossen ist, kannst du eine neue Datei für das neue LED-Programm erstellen. Du weißt doch sicher noch, wie das funktioniert? Ich würde sagen, du nennst die neue Datei einfach led.py.
$ nano led.py
In diese neue Datei kannst du auch gleich deinen neuen Programmcode schreiben. Wir werden diesen dann Schritt für Schritt durchgehen.
import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BCM)
gpio.setup(18, gpio.OUT)
gpio.output(18, gpio.HIGH)
time.sleep(2)
gpio.output(18, gpio.LOW)
time.sleep(2)
gpio.output(18, gpio.HIGH)
time.sleep(2)
gpio.output(18, gpio.LOW)
gpio.cleanup()
Mit Str + X
kannst du das Programm beenden und durch das Bestätigen speichern. Mit sudo python3 led.py
kannst du das Programm starten.
Ich habe dir doch oben von diesen Funktionen erzählt. Du weißt jetzt, wie diese aussehen und wie man sie benutzt. Die ersten beiden Zeilen fügen eine sogenannte Bibliothek in das Programm ein. Das kannst du dir wie eine große Sammlung von Büchern vorstellen. In diesen Büchern kann der Computer dann für uns nachlesen, wie die Funktionen, die wir in diesem Programm verwenden möchten, arbeiten.
import RPi.GPIO as gpio
import time
Die erste Bibliothek enthält die „Bücher“, in denen der Computer nachgucken kann, wie er die oben erläuterten GPIO-Pins ansteuern kann. Mit dem as
können wir der Bibliothek für das folgende Programm einen anderen Namen geben. Denn es ist nervig, immer RPi.GPIO
zu tippen, wenn gpio
kürzer ist. Die Bibliothek in der zweiten Zeile enthält „Bücher“ zum Thema Zeit. Mit Hilfe der Funktionen, die in dieser Bibliothek vorhanden sind, könnte man sich zum Beispiel das heutige Datum ausgeben lassen. Wir benutzen eine Funktion dieser Bibliothek, um das Programm für eine kurze Zeit pausieren zu lassen.
In der dritten Zeile begegnet dir nun die erste Funktion. Sie übernimmt als Parameter eine Information über die Belegung der GPIO-Pins des Raspberry Pis. Denn es gibt verschiedene Möglichkeiten und wir müssen dem Pi genau sagen, welche wir benutzen wollen, damit dieser nicht verwirrt ist. BCM
ist dabei die Pinbelegung, die wir hier in allen Beispielen benutzen werden.
In Zeile 4 legen wir fest, dass es sich bei dem ausgewählten Pin um einen Output handelt – also um diesen einen Pin, der Strom aus dem Pi heraus liefern soll.
In Zeile 5 drehen wir nun den Saft auf. Indem wir den Pin auf HIGH setzen, schalten wir dem Strom an. Damit die LED nicht gleich wieder ausgeht, pausieren wir das Programm in der sechsten Zeile für zwei Sekunden mit Hilfe der time.sleep()
Funktion. Der übergebene Wert (zwischen den Klammern) ist dabei die Pausenzeit in Sekunden.
Um den Strom wieder auszustellen, setzen wir den Pin in Zeile 7 einfach auf LOW. Nach einer erneuten kurzen Pause schalten wir die LED ein letzes Mal an. Am Ende, in Zeile 12, räumen wir noch die Pin-Belegung auf, damit es beim Start eines neuen Programms zu keinen Problemen kommt.
Doch wofür brauchen wir jetzt diesen Widerstand? Dieser begrenzt die Menge an Strom und verhindert, dass die LED oder der Raspberry Pi beschädigt werden und wird auch Vorwiderstand genannt. Du kannst dir das Ganze auch wie einen Wasserkreislauf vorstellen. Die LED wäre in diesem Fall ein Wasserrad. Damit sich dieses zu drehen beginnt muss es a) einen Wasserfluss geben und b) muss dieser stark genug sein. Wenn das Wasser aber zu stark fließt, würde das Rad kaputt gehen und deswegen dient der Widerstand als eine Verengung und begrenzt den Wasserfluss. Es ist dabei egal, in welche Richtung du den Widerstand einsteckst.