Raspberry Pi: GPIO beim Systemstart konfigurieren/einstellen

Bevor man einen GPIO als Eingang oder Ausgang benutzen kann, muss dieser konfiguriert bzw. eingestellt werden. Leider merkt sich der Raspberry Pi diese Einstellung nicht. Deshalb muss die Einstellung bei jedem Neustart erneut ausgeführt werden.

Hinweis

Es gibt verschiedene Wege, um GPIOs zu programmieren und zu konfigurieren. Beispielsweise über "sysfs", "wiringPi" oder "pigpio". Wir verwenden hier "pigpio". Dazu ist es notwendig, dass, das der pigpio-Daemon installiert und beim Systemstart aktiviert ist.

Lösung: GPIO-Konfiguration in der Datei "/etc/rc.local"

Die Datei "/etc/rc.local" wird automatisch beim Systemstart geladen. Deshalb eignet sie sich sehr gut, um GPIOs zum Systemstart zu konfigurieren.

Zur Konfiguration öffnen wir die Datei "/etc/rc.local" und nehmen darin die Konfiguration der GPIOs vor.

sudo nano /etc/rc.local

Hier tragen wir folgende Zeile vor "exit 0" ein, wenn wir den GPIO 17 (Pin 11) als Ausgang mit dem Grundzustand "low" (0) konfiguriert haben wollen.

pigs modes 17 w

Oder wir tragen hier folgende Zeilen vor "exit 0" ein, wenn wir den GPIO 17 (Pin 11) als Ausgang mit dem Grundzustand "high" (1) konfiguriert haben wollen.

pigs modes 17 w
pigs w 17 1

Oder wir tragen hier folgende Zeilen vor "exit 0" ein, wenn wir den GPIO 17 als Eingang konfiguriert haben wollen.

pigs modes 17 r

Anschließend speichern und schließen: Strg + O, Return, Strg + X.

Zum Ausprobieren ist ein Neustart notwendig.

sudo reboot

Die Ausführung der Datei "/etc/rc.local" erfolgt relativ spät. Um genau zu sein erst kurz bevor die Login-Aufforderung erscheint. Für die eine oder andere Anwendung kann das zu spät sein. Die Frage ist, welchen Zustand haben die GPIOs, bevor die Datei "/etc/rc.local" ausgeführt wird?

Lösung: GPIO-Konfiguration über ein Bash-Script

Typischerweise wird man ein Script bei jedem Boot-Vorgang starten lassen, um die Funktion der benötigten GPIO-Pins zu setzen. Das hat den Vorteil, dass man die Datei auch ohne Root-Rechte jederzeit ändern kann.

Zuerst legen wir eine Script-Datei an:

sudo nano /home/pi/gpio.sh

Im Prinzip tragen wir in die Script-Datei das selbe Kommando ein, wie in der Datei "/etc/rc.local".

#!/bin/bash

{KOMMANDOS}

exit 0

Anschließend speichern und schließen: Strg + O, Return, Strg + X.

Die Datei sollte man dann noch ausführbar machen.

chmod +x /home/pi/gpio.sh

Den Aufruf zum Script trägt man dann in die Datei "/etc/rc.local" ein, wenn man es beim Booten automatisch ausgeführt haben möchte.

...

# Run a script for setting up GPIO pins
/home/pi/gpio.sh >/dev/null 2>&1

exit 0

Anschließend speichern und schließen: Strg + O, Return, Strg + X.

Um zu Testen, ob das auch wirklich funktioniert ist ein Neustart notwendig.

Weitere verwandte Themen:

Teilen:

Produktempfehlungen