Raspberry Pi GPIO mit Python steuern – der Einstieg
Aktion: Gratis-Lektionen anschauen ✓
NEWS
RASPBERRY PI GPIO MIT PYTHON STEUERN – DER EINSTIEG

Sechs Zeilen Python und die LED blinkt
Passende Hardware im Überblick
Boards mit 40-poliger GPIO-Leiste:
Raspberry Pi 5 mit 8GB RAM – die Empfehlung für den Einstieg (Link)*
Raspberry Pi 5 mit 16GB RAM – wenn nebenbei noch Dienste laufen (Link)*
Raspberry Pi 5 mit 4GB RAM – wenn es günstig sein soll (Link)*
Raspberry Pi 4 Starter-Set mit 4GB RAM (Link)*
Raspberry Pi Zero 2 W – der Winzling für fest verbaute Projekte (Link)*
Raspberry Pi Pico 2 – Mikrocontroller für harte Zeitvorgaben (Link)*
Raspberry Pi Pico 2 W mit WLAN (Link)*
Bauteile zum Loslegen:
37-Sensoren-Kit mit LEDs, Tastern und Widerständen – der beste Start (Link)*
Quimat-Bastelset mit Steckbrett und Bauteilen (Link)*
Breadboard-Set mit Jumperkabeln und Steckernetzteil (Link)*
DS18B20-Temperaturfühler im 5er-Pack (Link)*
WS2812B-LED-Streifen 5 m für Lichtprojekte (Link)*
ELEGOO UNO R3 Komplettset – der Arduino-Gegenpart (Link)*
Strom, Karte und Kabel:
Offizielles 27-W-Netzteil für den Pi 5 (Link)*
SanDisk Extreme A2 128GB microSD (Link)*
USB-TTL-Kabel für die serielle Konsole (Link)*
Kurz gesagt: Wie steuert man GPIO-Pins mit Python?
Wer Raspberry Pi GPIO mit Python steuern will, braucht 2026 keine Registertabellen mehr – die Bibliothek gpiozero übersetzt Hardware in lesbare Sätze. Die Kurzfassung:
- Bibliothek: gpiozero ist auf Raspberry Pi OS vorinstalliert und arbeitet seit Version 2 im Unterbau mit lgpio. Damit läuft derselbe Code auf Pi 4, Pi 5, Pi 500 und Zero 2 W.
- Erstes Programm: from gpiozero import LED, dann led = LED(17) und led.blink() – fertig ist die blinkende LED.
- Nummerierung: Alle Bibliotheken zählen nach GPIO-Nummern (BCM), nicht nach Position auf der Leiste. GPIO17 sitzt physisch auf Pin 11 – das Pinout gehört daneben.
- Spannung: Die Pins arbeiten mit 3,3 V. 5 V an einem Eingang zerstört ihn dauerhaft, LEDs brauchen immer einen Vorwiderstand.
- RPi.GPIO ist Geschichte: Auf dem Pi 5 sitzt die Pin-Steuerung im RP1-Chip. Das alte Modul spricht ihn nicht an; Ersatz ist das Paket python3-rpi-lgpio, das dieselben Befehle nachbildet.
- Pip braucht ein venv: Seit Bookworm verweigert das System die direkte Installation mit pip. Entweder apt nehmen oder eine virtuelle Umgebung anlegen.
GPIO mit Python steuern – was hinter den Pins steckt
Die 40-polige Stiftleiste ist das, was den Raspberry Pi vom kleinen PC unterscheidet. Von den 40 Kontakten sind mehrere fest vergeben: zweimal 5 V, zweimal 3,3 V und acht Masse-Anschlüsse. Der Rest sind frei programmierbare Leitungen, die entweder etwas ausgeben (Ausgang, high = 3,3 V oder low = 0 V) oder etwas einlesen (Eingang). Zwei Sonderfälle gibt es: GPIO0 und GPIO1 liegen zwar auf den physischen Pins 27 und 28, sind aber für die automatische Erkennung von Aufsteckplatinen reserviert und sollten in eigenen Projekten tabu bleiben.
Verwirrend ist für Einsteiger fast immer die Nummerierung. Die Position auf der Leiste (Pin 1 bis 40) und die Bezeichnung des Anschlusses im Chip (GPIO2, GPIO17, GPIO27 …) haben nichts miteinander zu tun. Python-Bibliotheken sprechen ausschließlich die zweite Sprache. Ein eingebauter Helfer nimmt die Unsicherheit: Der Befehl pinout im Terminal zeichnet die Leiste des konkreten Boards farbig ins Fenster – dieses Werkzeug stammt aus gpiozero und ist deshalb auf jedem System sofort verfügbar.
Nicht jeder Anschluss kann alles. Hardware-PWM, also ein sauber getaktetes Signal für Servos oder Helligkeitssteuerung, liefern nur GPIO12, GPIO13, GPIO18 und GPIO19. Software-PWM funktioniert überall, zittert aber unter Last. GPIO2 und GPIO3 tragen fest verlötete Pull-up-Widerstände, weil dort der I2C-Bus liegt; für Taster ist das praktisch, sonst manchmal hinderlich. Wer SPI und I2C nutzen möchte, schaltet sie vorher in raspi-config frei.
Und noch eine harte Grenze: Der Pi kennt keine analogen Eingänge. Ein Poti, ein Fotowiderstand oder ein analoger Feuchtigkeitsfühler liefert eine Spannung, die der Pi ohne Zusatzchip nicht lesen kann. Entweder ein Analog-Digital-Wandler wie der MCP3008 über SPI übernimmt das, oder man greift gleich zu digitalen Sensoren mit I2C-Anschluss.
Raspberry Pi GPIO mit Python steuern – Schritt für Schritt
- System aktualisieren: sudo apt update && sudo apt full-upgrade. Raspberry Pi OS basiert seit dem Release vom 1. Oktober 2025 auf Debian Trixie; dort liegt gpiozero in Version 2.0.1 bereit.
- Bibliothek sicherstellen: sudo apt install python3-gpiozero python3-lgpio – auf den Standard-Images ist beides schon vorhanden, auf einer nackten Lite-Installation nicht immer.
- Schaltung aufbauen: LED mit 330-Ω-Vorwiderstand an GPIO17 (Pin 11) und Masse (Pin 9), Taster zwischen GPIO2 (Pin 3) und Masse. Aufbauen im ausgeschalteten Zustand, erst danach Strom geben.
- Skript schreiben: In Thonny oder einem Editor die Datei blink.py anlegen:
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1) - Starten: python3 blink.py im Terminal, Abbruch mit Strg+C. Blinkt die LED nicht, sitzt sie meist verkehrt herum – das lange Bein gehört an den GPIO-Pin.
- Eingang ergänzen: Der Taster steuert die LED ohne Warteschleife:
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
button.when_pressed = led.on
button.when_released = led.off
pause()
Das abschließende pause() stammt aus signal und hält das Programm am Leben, während gpiozero im Hintergrund auf Ereignisse lauscht. - Fremdbibliotheken nachrüsten: Braucht ein Sensor ein Modul, das es nicht als apt-Paket gibt, hilft eine virtuelle Umgebung: python3 -m venv --system-site-packages ~/.env, dann source ~/.env/bin/activate und erst darin pip install …. Der Schalter sorgt dafür, dass gpiozero aus dem System weiter sichtbar bleibt.
- Dauerbetrieb einrichten: Aus dem Experiment wird über einen Cronjob oder eine systemd-Unit ein Dienst, der den Neustart überlebt.
GPIO-Bibliotheken im Vergleich: gpiozero, lgpio und rpi-lgpio
Rund um GPIO existieren mehrere Bibliotheken nebeneinander, und die meisten älteren Anleitungen im Netz beziehen sich auf die falsche. Diese Übersicht sortiert das Feld:
| Bibliothek | Wofür sie gedacht ist | Stand 2026 |
|---|---|---|
| gpiozero | Der Standard für Einsteiger und die meisten Projekte: fertige Klassen wie LED, Button, MotionSensor, AngularServo | Empfohlen, vorinstalliert, Version 2.0.1 |
| lgpio | Die Ebene darunter: spricht direkt mit dem Kernel-Treiber, dient gpiozero als Unterbau | Empfohlen, wenn es maschinennah sein muss |
| rpi-lgpio | Bildet die Befehle des alten RPi.GPIO nach, damit betagte Skripte weiterlaufen | Nur als Übergangslösung, nie parallel zu RPi.GPIO |
| RPi.GPIO | Der Klassiker aus der Pi-1-Ära, Grundlage unzähliger alter Tutorials | Auf dem Pi 5 funktionslos, für Neues nicht mehr sinnvoll |
| libgpiod | Der generische Linux-Weg über /dev/gpiochip*, auch auf anderen Einplatinenrechnern | Solide, aber sperrig im Code |
Der Grund für den Bruch liegt in der Hardware: Beim Pi 5 wandern die Anschlüsse in den hauseigenen RP1-Chip, und die alte Registerakrobatik greift damit ins Leere. Gute Nachricht für alle, die mit gpiozero angefangen haben – ihre Skripte merken davon nichts, weil die Bibliothek den Unterbau selbst auswählt.
Von der LED zum echten Projekt: typische Bauteile am GPIO
- Taster und Schalter: Die Klasse Button bringt Entprellung schon mit. Ohne diese Logik meldet ein mechanischer Taster einen Druck gern drei- bis fünfmal.
- Relais: Über ein Relais-Modul schaltet der Pi auch Verbraucher mit höherer Spannung. Die Klasse dafür heißt OutputDevice, viele Module schalten invertiert – der Parameter active_high=False dreht das um.
- Bewegungsmelder: Ein PIR-Sensor am MotionSensor ist die Basis für Anwesenheitserkennung und Alarmprojekte.
- Servos und Motoren: AngularServo stellt Winkel direkt ein. Ein Servo gehört wegen der Stromspitzen an ein eigenes Netzteil, niemals an den 5-V-Pin des Boards. Motoren brauchen zwingend eine Treiberstufe.
- Temperaturfühler: Der DS18B20 hängt am 1-Wire-Bus und liefert Messwerte über das Dateisystem statt über eine GPIO-Bibliothek.
- RFID-Leser und Displays: Module wie der RC522 oder kleine LCD-Displays nutzen SPI beziehungsweise I2C und belegen damit feste Pins.
- Adressierbare LEDs: WS2812B-Streifen verlangen ein exakt getaktetes Signal. Auf dem Pi klappt das nur mit Spezialbibliotheken – häufig ist ein Pico 2 das ruhigere Werkzeug.
Fehlersuche mit pinctrl statt Raten
Wenn ein Aufbau schweigt, ist die erste Frage immer dieselbe: Liegt es am Programm oder an der Verkabelung? Genau dafür bringt Raspberry Pi OS das Werkzeug pinctrl aus dem Paket raspi-utils mit. Es liest und setzt Pin-Zustände direkt an der Hardware, ohne Python dazwischen, und hat den älteren Befehl raspi-gpio abgelöst.
Vier Aufrufe decken den Alltag ab: pinctrl ohne Zusatz zeigt den Zustand aller erkannten Anschlüsse. pinctrl -p stellt dieselbe Information nach Pin-Positionen der 40-poligen Leiste dar – ideal, um sie mit dem Steckbrett zu vergleichen. sudo pinctrl 17 op dh schaltet GPIO17 als Ausgang auf high und muss die LED zum Leuchten bringen; passiert nichts, liegt der Fehler in der Schaltung. Und pinctrl poll 2 beobachtet einen Eingang laufend, sodass jeder Tastendruck sofort sichtbar wird.
Bleibt der Zugriff verwehrt, fehlt meist die Gruppenmitgliedschaft. Der Standardbenutzer ist von Haus aus in der Gruppe gpio; zusätzlich angelegte Konten müssen per sudo usermod -a -G gpio benutzername nachgetragen werden, gefolgt von einer neuen Anmeldung. Für alles Weitere lohnt ein Blick in die raspi-config-Anleitung, weil dort auch die Schnittstellen freigeschaltet werden.
Fehler und Stolpersteine beim Basteln
- 5 V an einem Eingang: Der häufigste teure Fehler. Die Anschlüsse vertragen 3,3 V, ein 5-V-Signal grillt den Pin oder gleich den Chip. Pegelwandler kosten wenige Euro.
- LED ohne Vorwiderstand: Ohne die 220 bis 330 Ω zieht die Diode mehr Strom, als der Ausgang liefern darf. Sie leuchtet kurz sehr hell – und danach nie wieder.
- Verbraucher am 5-V-Pin: Servos, Lüfter und LED-Streifen ziehen im Anlauf viel Strom. Der Pi startet dann mitten im Betrieb neu. Eigene Stromversorgung nehmen und die Masse verbinden.
- Pin-Nummer verwechselt: GPIO17 ist Pin 11, GPIO18 ist Pin 12. Wer die Nummern vertauscht, schaltet ins Leere. pinout im Terminal klärt das in zwei Sekunden.
- Programm endet sofort: Ereignisgesteuerte Skripte laufen ohne pause() oder Endlosschleife durch und beenden sich – die Verbindung zum Pin wird beim Beenden freigegeben.
- Zwei Programme auf demselben Pin: Läuft im Hintergrund noch ein altes Skript, meldet das neue einen belegten Anschluss. ps aux | grep python findet den Übeltäter.
- Uralt-Tutorials: Anleitungen mit GPIO.setmode(GPIO.BOARD) stammen aus der RPi.GPIO-Zeit. Sie laufen auf dem Pi 5 nicht mehr und sollten nicht als Vorlage dienen.
Häufige Fragen zu GPIO und Python
Welche Bibliothek sollte ich 2026 lernen?
gpiozero. Sie ist vorinstalliert, gut dokumentiert und läuft unverändert auf allen aktuellen Modellen. Erst wenn Zeitverhalten oder exotische Bausteine es verlangen, lohnt der Umstieg auf lgpio.
Warum funktioniert mein altes Skript auf dem Pi 5 nicht mehr?
Weil es RPi.GPIO nutzt und die Pin-Steuerung beim Pi 5 im RP1-Chip sitzt. Das Paket python3-rpi-lgpio bildet die alten Befehle nach – allerdings darf RPi.GPIO daneben nicht installiert sein, beide belegen denselben Modulnamen.
Warum verweigert pip die Installation?
Seit Bookworm schützt Raspberry Pi OS die System-Installation von Python und meldet externally-managed-environment. Der saubere Weg führt über apt oder eine virtuelle Umgebung mit python3 -m venv.
Kann ich analoge Sensoren anschließen?
Nicht direkt, es fehlt der Analog-Digital-Wandler. Ein MCP3008 am SPI-Bus liefert acht analoge Kanäle nach, digitale Sensoren am I2C-Bus sparen den Umweg ganz.
Wie viel Strom darf ein Pin liefern?
Als Faustregel gelten 16 mA je Anschluss und rund 50 mA über alle zusammen. Das reicht für Leuchtdioden und Signalleitungen, für alles andere gehört ein Transistor oder ein Relais dazwischen.
Braucht Zeitkritisches wirklich einen Mikrocontroller?
Häufig ja. Linux ist kein Echtzeitsystem, weshalb ein Mikrocontroller präzise Impulse zuverlässiger erzeugt. Der Vergleich Arduino gegen Raspberry Pi zeigt, wo die Grenze verläuft.
Muss ich Programme mit sudo starten?
In der Regel nicht. Gehört der Benutzer zur Gruppe gpio, genügt ein normaler Aufruf – nur pinctrl und einzelne Spezialbibliotheken verlangen erhöhte Rechte.
Fazit
Wer den Raspberry Pi GPIO mit Python steuert, hält den kürzesten Weg vom Gedanken zur Bewegung in der Hand – fünf Zeilen Code, und ein Bauteil in der echten Welt reagiert. Unsere klare Empfehlung: Fang mit gpiozero an und ignoriere jede Anleitung, die noch RPi.GPIO verwendet. Die Bibliothek verbirgt genau die Details, die Einsteiger aufhalten, bleibt aber offen genug für größere Vorhaben, und sie überlebt jeden Modellwechsel, weil sie sich ihren Unterbau selbst sucht. Der zweite Rat betrifft die Werkbank statt den Editor: Ein günstiges Sensor-Kit mit Steckbrett, Widerständen und Kabeln erspart mehr Frust als jede zusätzliche Bibliothek – und wenn ein Aufbau schweigt, klärt pinctrl in einer Minute, ob Hardware oder Software schuld ist. Wer danach Lust auf mehr hat, findet in unserer Sammlung an Raspberry-Pi-Projekten reichlich Nachschub.
* = Affiliate Link (raspi-config.de ist Teilnehmer des Partnerprogramms von Amazon EU, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu Amazon.de Werbekostenerstattung verdient werden kann.)
Aktion: Gratis-Lektionen anschauen ✓
VORSCHAU
Was Dich im Raspberry Pi Videokurs erwartet.
Play klicken & Video abspielen.
NEWS
EMPFEHLUNG
Danke für Deine Weiterempfehlung!
© 2026 raspi-config.de | Datenschutz | Impressum


