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:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

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

Elektronik-Set jetzt bestellen

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
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-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!