Das Ansteuern einer LED ist der Klassiker jeder Mikrocontroller-Schaltung – nicht nur weil LEDs günstig sind, sondern weil diese Grundlage für zahlreiche weitere Projekte gilt.
Hinweis
Was benötigen wir?
| Produkt | Shop-Link |
|---|---|
| Raspberry Pi | Kauf-Empfehlung |
| Netzteil | Kauf-Empfehlung |
| Breadboard + Kabel | Kauf-Empfehlung |
| Widerstandsset (optional) | Kauf-Empfehlung |
| LED-Set | Kauf-Empfehlung |
| Raspberry Pi Starter Set (Empfehlung) | Kauf-Empfehlung |
Benötigte Materialien (Affiliate-Links)
Wer gerade mit ersten Schaltungen startet, kauft sich am besten ein Raspberry Pi Starter Set* – darin sind neben den LED-Bauteilen auch Servos, Motoren, RFID-Kartenleser, Reed-Kontakte und mehr enthalten.

Vorwiderstand für eine LED
Eine LED darf nie direkt an die GPIO-Pins des Raspberry Pi angeschlossen werden. Immer einen Vorwiderstand verwenden, um den Strom zu begrenzen.
Vorwiderstand berechnen
Die benötigten Werte (Vorwärtsspannung UF und Vorwärtsstrom IF) findest du im Datenblatt der LED.

Formel:
R = (GPIO-Spannung − LED-Spannung) ÷ LED-Strom
Beispiel mit einer roten LED (UF = 2,0 V, IF = 10 mA):
R = (3,3 V − 2,0 V) ÷ 0,010 A = 130 Ohm → 150 oder 220 Ohm verwenden
Tipp
GPIO Zero installieren
Als Bibliothek empfehle ich GPIO Zero – sie ist unter Raspberry Pi OS bereits vorinstalliert. Bei älteren Versionen:
sudo apt install python3-gpiozero Bei anderen Betriebssystemen:
sudo pip3 install gpiozero GPIO-Pin-Belegung
Mit GPIO Zero kann ein Pin auf verschiedene Arten angegeben werden:
roteled = LED(17)
roteled = LED("GPIO17")
roteled = LED("BCM17")
roteled = LED("BOARD11")
roteled = LED("WPI0")
roteled = LED("J8:11") Üblich ist die Angabe per GPIO-Nummer (BCM-Schema).

LED ansteuern
Aufbau
Immer erst den Raspberry Pi von der Stromversorgung trennen, dann anschließen:
- LED Kathode (kürzeres Bein) → GND
- LED Anode (längeres Bein) → 220-Ohm-Widerstand → GPIO Pin 17 (Board Pin 11)

Code: LED einschalten
from gpiozero import LED
roteled = LED(17)
roteled.on() Code-Erklärung
from gpiozero import LED LED-Klasse aus GPIO Zero importieren.
roteled = LED(17) Pin 17 als LED-Ausgang definieren. Der Name vor dem = ist frei wählbar.
roteled.on() LED einschalten.
LED blinken lassen
Code
from gpiozero import LED
from time import sleep
roteled = LED(17)
while True:
roteled.on()
sleep(1)
roteled.off()
sleep(1) sleep(1) hält den Code für 1 Sekunde an. Den Wert anpassen, um die Blinkfrequenz zu ändern.
Alternative: blink()-Funktion
from gpiozero import LED
from signal import pause
roteled = LED(17)
roteled.blink()
pause() Mehrere LEDs ansteuern
Aufbau
5 LEDs an GPIO-Pins 5, 6, 13, 19 und 26 anschließen – jede mit einem 220-Ohm-Widerstand.

Code: Alle LEDs gemeinsam
from gpiozero import LEDBoard
from time import sleep
leds = LEDBoard(5, 6, 13, 19, 26)
while True:
leds.on()
sleep(1)
leds.off()
sleep(1) Einzelne LEDs gezielt ansteuern
Mit .value und einer Tupel-Belegung (1 = an, 0 = aus):
leds.value = (1, 0, 1, 0, 1) Alle LEDs blinken lassen
from gpiozero import LEDBoard
from signal import pause
leds = LEDBoard(5, 6, 13, 19, 26)
leds.blink()
pause()