LED mit dem Raspberry Pi steuern
Grundlagen zu LEDs, dem GPIO, Wiederständen, Steckplatinen und der Programmiersprache Python:
Die LED |
![]() |
Im Gegensatz zu einer Glühlampe ist die Richtung des Stromflusses bei einer Leuchtdiode nicht egal. Die Kontakte einer LED heißen Anode (Pluspol) und Kathode (Minuspol). Die Anode ist durch ihr längeres Bein gekennzeichnet. Die Kathode außerdem dadurch, dass sie sich auf der abgeflachten Seite des Kunststoffrings unterhalb des Gehäuses befindet (siehe Skizze, Draufsicht). Unsere LED kann in einem Bereich von 1,8 V bis 2,3 V Spannung mit 20 mA Stromstärke betrieben werden. Links zur LED und allen weiteren verwendeten Bauteilen finden sich am Ende dieses Artikels.

Der Vorwiderstand |
![]() |
Da an den programmierbaren PINs des Raspberry Pis im Zustand High 3,3 V anliegen aber unsere verwendete LED nur 1,8 V bis 2,3 V Spannung aufnehmen darf, müssen wir diese durch einen Vorwiderstand reduzieren. Im Gegensatz zu einer Glühlampe, deren Überspannung im Niedrigvoltbereich nur zu hellerem Licht bei kürzerer Lebensdauer führt, können Leuchtdioden nur durch etwas zu hohe Spannungen gar explodieren! Der Vorwiderstand kann im Übrigen innerhalb des Stromkreises auch hinter die LED platziert werden.
Der Vorwiderstand berechnet sich nach dem Ohm’schen Gesetz mit:
Die Spannung U
, welche für die Berechnung des Vorwiderstandes benötigt wird, ergibt sich aus der Differenz der Betriebsspannung URasPi
mit der Spannung, welche die LED tatsächlich benötigt ULED
(wir verwenden aus Gründen der Sicherheit die untere Grenze, 1,8 V).
Der verwendete Widerstand ist ebenfalls unten verlinkt. Den Ohm-Wert eines Widerstandes lässt sich anhand eines aufgedruckten Farbcodes und einer entsprechenden Entschlüsselungstabelle (siehe untere Abbildung) ermitteln:

In unserem 75 Ω Beispiel besitzt der Widerstand folgenden Farbcode: Violet – Grün – Schwarz und abschließend Gold
Die Schaltung |
![]() |
Die untere Abbildung zeigt die Logik einer Steckplatine. Ihre Verwendung macht das Löten experimenteller Schaltungen überflüssig und ermöglicht ein schnelles Verbinden von Schaltkreisen. In der Abbildung kennzeichnen die grünen Pfeile Lochreihen, entlang derer ein Stromfluss möglich ist (Bus).

Das GPIO (General Purpose Input/Output – Allzweckeingabe/-ausgabe) des Raspberry Pi verfügt seit seiner zweiten Generation 40 Pins. Davon sind acht als Masse (Ground) und zur Stromversorgung jeweils zwei für 3,3 V und 5 V bestimmt (siehe Abbildung unterhalb). Die übrigen Pins verfügen zwar auch bestimmte Funktionen (so lässt sich bspw. mit den Pins 8 und 10 eine UART-Verbindung realisieren) allerdings sind diese rein optional und die Pins können grundsätzlich frei sowohl als Eingang als auch als Ausgang deklariert werden. Ein als Ausgang definierter Pin kann die beiden (digitalen) Zustände 1 und 0 besitzen. Bei Zustand 1
werden 3,3 V emittiert, während bei Zustand 0
kein Strom fließt.
Eine gute – und interaktive Übersicht findet sich auf https://de.pinout.xyz.


Der Pin 3 (BCM 2) wird mit dem untersten Bus der Steckplatte verbunden (blauer Draht) und weiter von diesem Bus aus zur der Kathode der LED. Diese Verbindung ist für die Masse (Erdung) gedacht. Danach stecken wir ein Ende des oben bestimmten Widerstands in die Lochreihe zur Anode der LED und den anderen Kontakt des Widerstands dazu parallel in eine freie Lochreihe, welche ihrerseits mit dem hier roten Draht an einen beliebigen Pin (außer natürlich 3V3-, 5V-, oder Masse-Pin) verknüpft wird. Hierbei entscheide ich mich für Pin 18 (BCM Pin 24)
Das Python 3 Programm |
![]() |
Zunächst importieren wir für die Ausführung des folgenden Codes die erforderlichen Bibliotheken: Einerseits jene Bibliothek zum Ansteuern der GPIO-Pins, RPI.GPIO
anderseits die Python eigene Standartbibliothek time
, welche benötigt wird, um das Programm für eine bestimmte Zeit anzuhalten. Bei dem Importieren der RPI.GPIO
-Bibliothek verwenden wir die Klausel as GPIO
, die es ermöglicht, dieses Modul (Bibliothek) mit dem kürzeren Wort GPIO
anzusprechen. Die äußeren werden üblicherweise für die Verbindung zur Stromquelle (Rot) und zur Masse (Blau) verwendet. Auf den inneren Lochreihen werden elektronische Bauteile, wie in unserem Fall eine LED platziert. Ein Verweis zum verwendeten Breadboard findet sich unten auf dieser Seite.
import RPi.GPIO as GPIO import time
Anschließend wird die Konvention für das verwendete Bezeichnungsschema festgelegt. Wir verwenden das häufiger benutze BCM-Schema.
GPIO.setmode(GPIO.BCM)
Nun wird der BCM-Pin 24 als Ausgangspin definiert.
PIO.setup(24, GPIO.OUT)
Danach schalten wir diesen Pin auf das Level „High“ (3,3 V). Nun sollte die LED leuchten.
GPIO.output(24, GPIO.HIGH)
Jetzt erfolgt das Pausieren des Programms für zwei Sekunden. Dabei wird die Funktion sleep()
aus der zuvor importierten Bibliothek
time.sleep(2)
Nachdem der Cursor des Python-Interpreters für zwei Sekunden in der vorangegangenen Zeile verharrt hat, wird der BCM-Pin 24 nun auf das Level „Low“ (0 V) geschaltet und damit das Licht der LED erloschen.
Zu guter Letzt setzen wir alle Pins, welche durch dieses Programm angesprochen wurden mit der Funktion GPIO.cleanup()
zurück. Dies betrifft in diesem Fall lediglich BCM-Pin 24. Zusätzlich wird durch diese Methode eine Fehlermeldung vermieden, die das Ausführen des Codes bei erneutem Starten des Programms verhindert.
GPIO.cleanup()
Der Code in seiner vollen Gänze |
![]() |
# Erforderliche Bibliotheken importieren import RPi.GPIO as GPIO import time # Konvention für Pinnummerierung festlegen (BCM bzw. Board) GPIO.setmode(GPIO.BCM) # Pin mit seiner Nummer und als Ausgang definieren GPIO.setup(24, GPIO.OUT) # Pin auf 3,3 V schalten GPIO.output(24, GPIO.HIGH) # LED nach zwei Sekunden ausschalten time.sleep(2) # Pin auf 0 V schalten GPIO.output(24, GPIO.LOW) # Verwendete Pins (hier nur BCM-Pin 24) zurücksetzen GPIO.cleanup()
Verwendete Bauteile |
![]() |
Verwendete Bauteile | Empfohlene Komponenten für den Raspberry Pi | ||
---|---|---|---|
10 rote LEDs | Raspberry Pi 3 Modell B+ | ||
Jumper Kabel | 5 V / 3 A Micro USB Netzteil | ||
Steckplatine | RasPi 2/3 Gehäuse | ||
75 Ω Widerstand |
Bildquellen |
![]() |
[1] | „+- of Led. Adam850. Wikipedia, die freie Enzyklopädie. 2007. URL: https://de.wikipedia.org/wiki/Datei:%2B-_of_Led.svg“ |
[2] | https://de.pinout.xyz/ |