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?

ProduktShop-Link
Raspberry PiKauf-Empfehlung
NetzteilKauf-Empfehlung
Breadboard + KabelKauf-Empfehlung
Widerstandsset (optional)Kauf-Empfehlung
LED-SetKauf-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.

Raspberry Pi Starter Set
Raspberry Pi Starter Set

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.

LED-Datenblatt mit Vorwärtsspannung und -strom
LED-Datenblatt mit Vorwärtsspannung und -strom

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:

bash
sudo apt install python3-gpiozero

Bei anderen Betriebssystemen:

bash
sudo pip3 install gpiozero

GPIO-Pin-Belegung

Mit GPIO Zero kann ein Pin auf verschiedene Arten angegeben werden:

python
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).

Raspberry Pi GPIO Pinout
Raspberry Pi GPIO Pinout

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-WiderstandGPIO Pin 17 (Board Pin 11)
Aufbau der LED-Schaltung am Breadboard
Aufbau der LED-Schaltung am Breadboard

Code: LED einschalten

python
from gpiozero import LED

roteled = LED(17)

roteled.on()

Code-Erklärung

python
from gpiozero import LED

LED-Klasse aus GPIO Zero importieren.

python
roteled = LED(17)

Pin 17 als LED-Ausgang definieren. Der Name vor dem = ist frei wählbar.

python
roteled.on()

LED einschalten.

LED blinken lassen

Code

python
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.

python
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.

Aufbau mit mehreren LEDs
Aufbau mit mehreren LEDs

Code: Alle LEDs gemeinsam

python
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):

python
leds.value = (1, 0, 1, 0, 1)

Alle LEDs blinken lassen

python
from gpiozero import LEDBoard
from signal import pause

leds = LEDBoard(5, 6, 13, 19, 26)

leds.blink()
pause()
Muss ich GPIO Zero extra installieren?
Nein, GPIO Zero ist ab Raspberry Pi OS Buster standardmäßig vorinstalliert. Bei älteren OS-Versionen kann es mit sudo apt install python3-gpiozero nachinstalliert werden.
Kann ich jeden GPIO-Pin für LEDs verwenden?
Die meisten GPIO-Pins eignen sich als Ausgang für LEDs. Einige Pins haben jedoch spezielle Funktionen beim Booten (z.B. GPIO 2, 3 haben interne Pull-Ups). Für einfache LED-Schaltungen funktionieren GPIO 5, 6, 13, 17, 19, 26 problemlos.
Was passiert, wenn ich keinen Vorwiderstand verwende?
Die LED und/oder der GPIO-Pin des Raspberry Pi können dauerhaft beschädigt werden. Immer einen Vorwiderstand verwenden – mindestens 100 Ohm, empfohlen 150–220 Ohm für Standard-LEDs.
Wie schalte ich die LED per Taster ein und aus?
Das zeige ich im nächsten Artikel: Raspberry Pi Taster abfragen. Dort kombinieren wir LED-Ausgang und Taster-Eingang.
Wie viele LEDs kann ich gleichzeitig an einem Raspberry Pi betreiben?
Theoretisch so viele wie GPIO-Pins vorhanden sind. Praktisch gilt: Jeder GPIO-Pin kann max. 16 mA liefern, alle Pins zusammen max. 50 mA. Bei vielen LEDs besser einen Transistor oder einen Treiber-IC (z.B. ULN2003) zwischenschalten.

Hat dir der Artikel gefallen? Teile ihn!