GPIO

Ein leistungsfähiges Merkmal des Raspberry Pi ist die Reihe von GPIO (general-purpose input/output) Pins entlang der oberen Kante des Boards. Eine 40-polige GPIO-Stiftleiste befindet sich auf allen aktuellen Raspberry Pi-Platinen (auf Pi Zero und Pi Zero W ist sie nicht bestückt). Vor dem Pi 1 Model B+ (2014) hatten die Boards eine kürzere 26-polige Stiftleiste.

Jeder der GPIO-Pins kann (in der Software) als Eingangs- oder Ausgangspin bestimmt und für eine Vielzahl von Zwecken verwendet werden.

Hinweis: Die Nummerierung der GPIO-Pins ist nicht in numerischer Reihenfolge; die GPIO-Pins 0 und 1 sind auf der Platine vorhanden (physikalische Pins 27 und 28), sind aber für eine erweiterte Nutzung reserviert (siehe unten).

Spannungen

Zwei 5V-Pins und zwei 3V3-Pins sind auf der Platine vorhanden, sowie eine Reihe von Masse-Pins (0V), die nicht konfigurierbar sind. Die übrigen Pins sind allesamt 3V3-Pins für allgemeine Zwecke, d.h. die Ausgänge sind auf 3V3 eingestellt und die Eingänge sind 3V3-tolerant.

Ausgänge

Ein GPIO-Pin, der als Ausgangspin bezeichnet wird, kann auf hoch (3V3) oder niedrig (0V) eingestellt werden.

Eingänge

Ein GPIO-Pin, der als Eingangspin bezeichnet wird, kann als hoch (3V3) oder niedrig (0V) gelesen werden. Dies wird durch die Verwendung von internen Pull-up- oder Pull-down-Widerständen erleichtert. Die Pins GPIO2 und GPIO3 haben feste Pull-up-Widerstände, aber für andere Pins kann dies in der Software konfiguriert werden.

Mehr

Neben einfachen Ein- und Ausgabegeräten können die GPIO-Pins mit einer Vielzahl von alternativen Funktionen verwendet werden, von denen einige für alle Pins, andere für bestimmte Pins verfügbar sind.

  • PWM (Pulsweitenmodulation)
    • Software-PWM verfügbar auf allen Pins
    • Hardware-PWM verfügbar auf GPIO12, GPIO13, GPIO18, GPIO19
  • SPI
    • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
    • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
  • I2C
    • Daten: (GPIO2); Takt (GPIO3)
    • EEPROM Daten: (GPIO0); EEPROM Clock (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

GPIO Pinout

Es ist wichtig zu wissen, welcher Pin welcher ist. Manche Leute verwenden Pin-Etiketten (wie das RasPiO Portsplus PCB oder das druckbare Raspberry Leaf).

Eine praktische Referenz kann auf dem Raspberry Pi aufgerufen werden, indem man ein Terminalfenster öffnet und den Befehl pinout ausführt. Dieses Tool wird von der GPIO Zero Python-Bibliothek zur Verfügung gestellt, die standardmäßig auf dem Raspberry Pi OS Desktop-Image installiert ist, jedoch nicht auf Raspberry Pi OS Lite.

Für weitere Details zu den erweiterten Möglichkeiten der GPIO-Pins siehe das interaktive Pinout-Diagramm von gadgetoid.

Programmieren mit GPIO

Es ist möglich, GPIO-Pins mit einer Reihe von Programmiersprachen und Tools zu steuern. Siehe die folgenden Anleitungen für den Einstieg:

  • GPIO mit Scratch 1.4
  • GPIO mit Scratch 2
  • GPIO mit Python
  • GPIO mit C/C++ unter Verwendung der Standard-Kernel-Schnittstelle über libgpiod
  • GPIO mit C/C++ unter Verwendung der Drittanbieter-Bibliothek pigpio
  • GPIO mit Processing3

Warnung: Das Anschließen von einfachen Komponenten an die GPIO-Pins ist zwar vollkommen sicher, aber man muss vorsichtig sein, wie man die Dinge verdrahtet. LEDs sollten Widerstände haben, um den Strom zu begrenzen, der durch sie fließt. Verwenden Sie keine 5V für 3V3-Komponenten. Schließen Sie Motoren nicht direkt an die GPIO-Pins an, sondern verwenden Sie eine H-Brückenschaltung oder eine Motorsteuerungsplatine.

Berechtigungen

Um die GPIO-Ports verwenden zu können, muss Ihr Benutzer Mitglied der Gruppe gpio sein. Der Benutzer pi ist standardmäßig ein Mitglied, andere Benutzer müssen manuell hinzugefügt werden.

sudo usermod -a -G gpio <username>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.