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:
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO-Belegung
- Raspberry Pi: GPIO beschalten
- Raspberry Pi: GPIO steuern und programmieren
- Raspberry Pi: GPIO beim Systemstart konfigurieren/einstellen
Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero
Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Verschiedene Zustände auswerten und anzeigen lassen
- LED mit Taster einschalten und ausschalten
- Relais-Board steuern
- LED, Relais-Board und Motor über ULN2003A steuern
- Ampel- und Lauflicht-Steuerung
- Herunterfahren per Taster
- Reaktionsspiel mit Tastern und LEDs
- Eigene Steuerungen programmieren
Teilen:
Elektronik-Set Raspberry Pi Edition
Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero
- Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
- Experimentieren und Programmieren ohne Vorkenntnisse
- Sofort Loslegen mit All-in-one-Set
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.