Habt ihr das auch schon erlebt? Ihr habt ein tolles Projekt mit eurem Raspberry Pi geplant, alle Teile bestellt und dann… passt der Stecker nicht! Ein Ärgernis, das Zeit und Nerven kostet. Oft liegt das Problem nicht an falschen Teilen an sich, sondern an der unklaren Benennung der GPIO-Stecker und zugehörigen Komponenten. In diesem Artikel räumen wir mit dem Chaos auf und sorgen dafür, dass ihr nie wieder falsche Teile bestellt.
Was sind GPIOs überhaupt?
Bevor wir uns in die Welt der Steckerbezeichnungen stürzen, klären wir kurz, was GPIOs überhaupt sind. GPIO steht für General Purpose Input/Output. Das sind die vielseitigen Schnittstellen des Raspberry Pi, über die ihr mit der Außenwelt kommunizieren könnt. Ihr könnt sie verwenden, um LEDs anzusteuern, Sensoren auszulesen, Motoren zu steuern oder sogar mit anderen Computern zu kommunizieren. Kurz gesagt: GPIOs sind die Grundlage für eure kreativen Projekte.
Der berüchtigte 40-Pin Header: Die Basis für alles
Das Herzstück der GPIO-Schnittstelle ist der 40-Pin Header. Diesen findet ihr auf fast allen Raspberry Pi Modellen (mit Ausnahme des Raspberry Pi Pico, der seine eigene GPIO-Lösung hat). Er besteht aus zwei Reihen mit jeweils 20 Pins. Jeder dieser Pins hat eine spezifische Funktion, die wir uns gleich genauer ansehen.
Warum ist die Benennung so verwirrend?
Hier liegt das Problem. Die Pins des 40-Pin Headers können auf verschiedene Arten benannt werden. Es gibt drei gängige Nummerierungssysteme:
- BCM (Broadcom SOC channel) Nummerierung: Diese Nummerierung bezieht sich auf die tatsächlichen Pins des Broadcom-Prozessors im Raspberry Pi. Sie ist die gängigste Methode in der Softwareprogrammierung, da sie direkt auf die Hardware zugreift.
- Board Nummerierung: Diese Nummerierung ist einfacher zu verstehen, da sie einfach die physische Position der Pins auf der Platine zählt. Pin 1 ist der Pin oben links, Pin 2 der Pin direkt darunter und so weiter.
- WiringPi Nummerierung: Ein älteres Nummerierungssystem, das heutzutage weniger verbreitet ist, aber in älteren Projekten noch vorkommen kann.
Das bedeutet, dass der gleiche Pin unterschiedliche Nummern haben kann, je nachdem, welches Nummerierungssystem verwendet wird. Ein Beispiel: Der Pin, der physisch als Pin 1 auf dem Board markiert ist, entspricht dem 3,3V-Pin und hat keine BCM-Nummer.
Die Pinbelegung im Detail
Um Verwirrung zu vermeiden, ist es wichtig, die Pinbelegung des 40-Pin Headers genau zu kennen. Hier ist eine detaillierte Aufschlüsselung:
Hinweis: Die folgende Tabelle verwendet die Board Nummerierung zur Identifizierung der Pins. Die entsprechenden BCM-Nummern sind ebenfalls angegeben.
Pin # (Board) | Name/Funktion | BCM | Hinweis |
---|---|---|---|
1 | 3.3V | – | Spannungsversorgung (3.3 Volt) |
2 | 5V | – | Spannungsversorgung (5 Volt) |
3 | GPIO2 | 2 | Allzweck Ein-/Ausgang |
4 | 5V | – | Spannungsversorgung (5 Volt) |
5 | GPIO3 | 3 | Allzweck Ein-/Ausgang |
6 | GND | – | Masse (Ground) |
7 | GPIO4 | 4 | Allzweck Ein-/Ausgang |
8 | GPIO14 | 14 | Allzweck Ein-/Ausgang (UART TXD) |
9 | GND | – | Masse (Ground) |
10 | GPIO15 | 15 | Allzweck Ein-/Ausgang (UART RXD) |
11 | GPIO17 | 17 | Allzweck Ein-/Ausgang |
12 | GPIO18 | 18 | Allzweck Ein-/Ausgang |
13 | GPIO27 | 27 | Allzweck Ein-/Ausgang |
14 | GND | – | Masse (Ground) |
15 | GPIO22 | 22 | Allzweck Ein-/Ausgang |
16 | GPIO23 | 23 | Allzweck Ein-/Ausgang |
17 | 3.3V | – | Spannungsversorgung (3.3 Volt) |
18 | GPIO24 | 24 | Allzweck Ein-/Ausgang |
19 | GPIO10 | 10 | Allzweck Ein-/Ausgang (SPI MOSI) |
20 | GND | – | Masse (Ground) |
21 | GPIO9 | 9 | Allzweck Ein-/Ausgang (SPI MISO) |
22 | GPIO25 | 25 | Allzweck Ein-/Ausgang |
23 | GPIO11 | 11 | Allzweck Ein-/Ausgang (SPI SCLK) |
24 | GPIO8 | 8 | Allzweck Ein-/Ausgang (SPI CE0) |
25 | GND | – | Masse (Ground) |
26 | GPIO7 | 7 | Allzweck Ein-/Ausgang (SPI CE1) |
27 | GPIO0 | 0 | Allzweck Ein-/Ausgang (I2C SDA) |
28 | GPIO1 | 1 | Allzweck Ein-/Ausgang (I2C SCL) |
29 | GPIO5 | 5 | Allzweck Ein-/Ausgang |
30 | GND | – | Masse (Ground) |
31 | GPIO6 | 6 | Allzweck Ein-/Ausgang |
32 | GPIO12 | 12 | Allzweck Ein-/Ausgang |
33 | GPIO13 | 13 | Allzweck Ein-/Ausgang |
34 | GND | – | Masse (Ground) |
35 | GPIO19 | 19 | Allzweck Ein-/Ausgang |
36 | GPIO16 | 16 | Allzweck Ein-/Ausgang |
37 | GPIO26 | 26 | Allzweck Ein-/Ausgang |
38 | GPIO20 | 20 | Allzweck Ein-/Ausgang |
39 | GND | – | Masse (Ground) |
40 | GPIO21 | 21 | Allzweck Ein-/Ausgang |
Welche Steckerarten gibt es und welche brauche ich?
Nachdem wir die Grundlagen der GPIO-Pins geklärt haben, kommen wir zu den Steckern. Es gibt verschiedene Arten von Steckern, die ihr für eure Raspberry Pi Projekte verwenden könnt. Die gängigsten sind:
- Jumperkabel (Dupont-Kabel): Diese Kabel haben an einem Ende einen Stift (Male) und am anderen eine Buchse (Female). Sie sind ideal, um einzelne Komponenten mit dem Raspberry Pi zu verbinden, z.B. LEDs, Widerstände oder Sensoren. Es gibt sie in verschiedenen Längen und Farben.
- Breadboard-Kabel: Ähnlich wie Jumperkabel, aber oft mit festeren Stiften, die sich besser in Breadboards stecken lassen.
- Ribbon Cable (Flachbandkabel): Diese Kabel bestehen aus mehreren einzelnen Drähten, die nebeneinander in einem flachen Band angeordnet sind. Sie werden oft verwendet, um eine größere Anzahl von Verbindungen gleichzeitig herzustellen, z.B. für Displays oder Sensormodule.
- IDC-Stecker (Insulation Displacement Connector): Diese Stecker werden verwendet, um Flachbandkabel mit dem 40-Pin Header zu verbinden. Sie werden auf das Flachbandkabel gepresst, wodurch die Isolierung durchbrochen und ein Kontakt mit den einzelnen Drähten hergestellt wird.
- GPIO Breakout Boards: Diese Boards werden auf den 40-Pin Header gesteckt und bieten Schraubklemmen oder andere Anschlussmöglichkeiten für die einzelnen GPIO-Pins. Sie erleichtern das Anschließen von Komponenten erheblich und verhindern Beschädigungen des Headers.
Die richtige Wahl treffen
Die Wahl des richtigen Steckers hängt von eurem Projekt ab. Für einfache Projekte mit wenigen Komponenten sind Jumperkabel oft ausreichend. Für komplexere Projekte mit vielen Verbindungen sind Ribbon Cable mit IDC-Steckern oder ein GPIO Breakout Board die bessere Wahl. Achtet bei der Bestellung von Kabeln und Steckern immer auf die Kompatibilität mit dem 40-Pin Header des Raspberry Pi.
Software-seitige Konfiguration: Das A und O
Selbst wenn ihr die richtigen Stecker habt, ist die hardwareseitige Verbindung nur die halbe Miete. Ihr müsst die GPIO-Pins auch in eurer Software korrekt konfigurieren. Hier sind einige wichtige Punkte:
- Wählt das richtige Nummerierungssystem: Entscheidet euch, ob ihr die BCM-Nummerierung oder die Board-Nummerierung verwenden wollt und bleibt dabei. Die meisten Python-Bibliotheken (z.B. RPi.GPIO) unterstützen beide Systeme.
- Definiert die Richtung der Pins: Legt fest, ob ein Pin als Eingang (Input) oder Ausgang (Output) verwendet werden soll. Eingänge werden verwendet, um Signale von Sensoren zu empfangen, Ausgänge, um LEDs oder andere Geräte anzusteuern.
- Verwendet Pull-Up oder Pull-Down Widerstände: Diese Widerstände sorgen dafür, dass ein Eingangspin einen definierten Zustand hat, wenn kein Signal anliegt. Sie verhindern unerwünschtes „Schweben” des Pins.
Ein einfaches Beispiel in Python (mit der RPi.GPIO Bibliothek und Board-Nummerierung):
import RPi.GPIO as GPIO
import time
# Setze den Modus auf Board-Nummerierung
GPIO.setmode(GPIO.BOARD)
# Definiere den Pin, an dem die LED angeschlossen ist (z.B. Pin 11)
led_pin = 11
# Setze den Pin als Ausgang
GPIO.setup(led_pin, GPIO.OUT)
try:
while True:
# Schalte die LED ein
GPIO.output(led_pin, GPIO.HIGH)
time.sleep(1) # Warte eine Sekunde
# Schalte die LED aus
GPIO.output(led_pin, GPIO.LOW)
time.sleep(1) # Warte eine Sekunde
except KeyboardInterrupt:
# Räume die GPIO-Pins auf, wenn das Programm beendet wird
GPIO.cleanup()
Tipps und Tricks für den erfolgreichen Anschluss
- Verwendet eine Pinbelegungsübersicht: Haltet eine aktuelle Pinbelegungsübersicht des Raspberry Pi bereit, um Fehler zu vermeiden. Es gibt viele kostenlose Übersichten im Internet.
- Beschriftet eure Kabel: Beschriftet eure Jumperkabel oder Flachbandkabel, um den Überblick zu behalten, welche Verbindung zu welchem Pin führt.
- Prüft die Spannung: Messt die Spannung an den 5V- und 3.3V-Pins mit einem Multimeter, um sicherzustellen, dass alles korrekt ist.
- Achtet auf die Polarität: Bei LEDs und anderen polarisierten Bauelementen müsst ihr auf die richtige Polarität achten (Anode und Kathode).
- Verwendet Schutzwiderstände: Verwendet immer Schutzwiderstände, um LEDs und andere empfindliche Bauelemente vor Beschädigungen zu schützen.
- Sucht Hilfe: Wenn ihr euch unsicher seid, fragt in Foren oder Communities nach. Es gibt viele erfahrene Raspberry Pi Benutzer, die euch gerne weiterhelfen.
Fazit: Mit Wissen zum Erfolg
Die GPIO-Schnittstelle des Raspberry Pi ist ein mächtiges Werkzeug, das euch unzählige Möglichkeiten bietet. Mit dem Wissen über die verschiedenen Nummerierungssysteme, Steckerarten und die softwareseitige Konfiguration könnt ihr das volle Potenzial eures Raspberry Pi ausschöpfen und vermeidet frustrierende Fehlkäufe. Also, taucht ein in die Welt der GPIOs und lasst eurer Kreativität freien Lauf!