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

Die GPIOs werden auf dem Raspberry Pi als Dateien repräsentiert und befinden sich im Verzeichnisbaum unter "/sys/class/gpio" zu finden. Man bezeichnet das als "sysfs". Wenn man sich den Inhalt der Dateien anzeigen lässt, bekommt man den Zustand heraus. Das ist entweder "1" oder "0".

ls /sys/class/gpio

Bei der Steuerung und Programmierung muss man darauf achten, dass man nicht die Pin-Nummer wählt, sondern die BCM-Nummer des GPIOs. Im folgenden Beispiel konfigurieren wir den GPIO 17 (Pin 11) als Ausgang und den GPIO 18 (Pin 12) als Eingang.

Hinweis: Die Programmierung der GPIOs über "sysfs" ist nicht zu empfehlen. Der empfohlene Weg ist mit dem Kommandozeilentool "pigpio".

GPIO als Eingang oder Ausgang konfigurieren

Um einen GPIO zu konfigurieren muss man ihn zuerst erzeugen. Anschließend entscheidet man sich für die Richtung. Also entweder als Eingang oder Ausgang. Zuerst schalten wir den "GPIO 17" ein.

echo 17 > /sys/class/gpio/export

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

echo in > /sys/class/gpio/gpio17/direction

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

echo out > /sys/class/gpio/gpio17/direction

Einen als Ausgang konfigurierten GPIO sollte man anschließend noch einen Zustand, also "high" oder "low" geben.

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.

echo 1 > /sys/class/gpio/gpio17/value

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

echo 0 > /sys/class/gpio/gpio17/value

GPIO-Zustand ermitteln

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

cat /sys/class/gpio/gpio17/value

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

GPIO deaktivieren

Wenn man GPIOs nicht mehr braucht, dann sollte man sie deaktivieren. Durch die folgenden Kommandos verschwinden die Dateien und Verzeichnisse der GPIOs wieder. Bei einem Neustart werden die GPIOs automatisch zurückgesetzt.

echo 17 > /sys/class/gpio/unexport

Weitere verwandte Themen:

Teilen:

Produktempfehlungen