Raspberry Pi: GPIO mit "pigpio" steuern und programmieren (Shell/Bash)

Im Vergleich zum Steuern und Programmieren der GPIOs über "sysfs" stellt "pigpio" auf der Kommandozeile eine Vereinfachung dar. Das Kommandozeilen-Tool "pigs" unterstützt auch die Programmierung eines GPIOs als PWM und Servo.
"pigpio" ist auch die bevorzugte Methode, mit der sich die GPIOs auf der Kommandozeile steuern und programmieren lassen.

Installieren und aktivieren von "pigpio"

Sofern noch nicht installiert, erfolgt die Installation von "pigpio" mit folgendem Kommando.

sudo apt-get install pigpio

Die Steuerung der GPIOs erfolgt mit dem Kommandozeilentool "pigs". Damit das funktioniert, muss man zuerst den pigpio-Daemon starten.

sudo systemctl start pigpiod

Wenn man möchte, dass der Daemon automatisch bei Systemstart gestartet wird, dann muss folgendes Kommando ausgeführt werden.

sudo systemctl enable pigpiod

Danach kann man die einzelnen GPIOs konfigurieren.

GPIO als Eingang oder Ausgang konfigurieren

Wir wählen hier beispielhaft den GPIO 17 (Pin 11) und GPIO 18 (Pin 12) um sie als Ausgang und Eingang zu konfigurieren. Hierzu wird die BCM-Nummerierung des Chips verwendet. Also die Nummer des GPIOs und nicht des Pins.

Wenn der GPIO 17 als Ausgang konfiguriert werden soll, dann gilt folgendes Kommando.

pigs modes 17 w

Standardmäßig bekommt der Ausgang den Zustand "low" bzw. "0".

Wenn der GPIO 18 als Eingang konfiguriert werden soll, dann gilt folgendes Kommando.

pigs modes 18 r

Zustand eines GPIO-Ausgangs setzten

Grundsätzlich kann man nur Ausgänge setzen. Um den Zustand eines GPIO-Ausgangs auf "high" zu setzen reicht folgendes Kommando.

pigs w 17 1

Um den Zustand eines GPIO-Ausgangs auf "low" zu setzen reicht folgendes Kommando.

pigs w 17 0

GPIO-Zustand ermitteln/lesen

Um den Zustand, also "high" oder "low", an einem GPIO zu ermitteln, reicht folgendes Kommando. Der GPIO kann dabei sowohl ein Eingang als auch ein Ausgang sein.

pigs r 18

Die Ausgabe "1" steht für "high" oder "0" für "low".

Troubleshooting

Beim Ausführen der pigs-Kommandos erscheint die Fehlermeldung "socket connect failed". Das bedeutet nichts anders als das der pigpiod-Daemon nicht läuft. Man muss ihn noch starten.

Kommandos zur Steuerung von "pigpiod"

pigpio-Daemon beim Systemstart automatisch starten:

sudo systemctl enable pigpiod

Systemstart deaktivieren:

sudo systemctl disable pigpiod

pigpio-Daemon starten:

sudo systemctl start pigpiod

pigpio-Daemon stoppen:

sudo systemctl stop pigpiod

Status des pigpio-Daemons anzeigen:

sudo systemctl status pigpiod

Weitere verwandte Themen:

Teilen:

Produktempfehlungen