Raspberry Pi: GPIOs mit Python und pigpio programmieren

Neben der GPIO-Steuerung auf der Kommandozeile existiert für „pigpio“ auch eine Bibliothek für Python. Außerdem kann man mit „pigpio“ die GPIOs auf einem anderen Raspberry Pi auch über das Netzwerk steuern. Und zwar genauso einfach, wie wenn man es auf dem lokalen Raspberry Pi tun würde.

pigpio installieren

Wenn die Tools und die Python-Bibliothek nicht installiert sind, dann kann man das nachträglich installieren.

sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio

Damit „pigpio“ funktioniert, muss der Daemon gestartet werden.

sudo pigpiod

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. „pipgio“ verwendet hierfür die BCM-Nummerierung des Chips. Also die Nummer des GPIOs und nicht des Pins.

Hinweis: Bei den folgenden Zeilen handelt es sich um keine sinnvolle und vollständig laufende Anwendung, sondern nur um ein Beispiel, wie die GPIOs als Eingang oder Ausgang konfiguriert und deren Zustände gesetzt und gelesen werden können.

# GPIO-Support einbinden (BCM-Nummerierung)
import pigpio

# Lokaler GPIO-Zugriff (Hostname vom Localhost)
pi = pigpio.pi()

# GPIO 17 (Pin 11) als Ausgang einstellen
pi.set_mode(17, pigpio.OUTPUT)

# GPIO 17 (Pin 11) auf HIGH setzen
pi.write(17, 1)

# GPIO 17 (Pin 11) auf LOW setzen
pi.write(17, 0)

# GPIO 18 (Pin 12) als Eingang einstellen
pi.set_mode(18, pigpio.INPUT)

# GPIO 18 lesen und ausgeben
print (pi.read(18))

Programmbeispiel: Blinkende LED

Das folgende Programmbeispiel ist vollständig und lauffähig. Damit die LED blinkt muss der GPIO 17 (Pin 11) mit einer Leuchtdiode mit Vorwiderstand beschaltet werden.

import pigpio
import time

pi = pigpio.pi()
pi.set_mode(17, pigpio.OUTPUT)

while True:
    pi.write(17, 1)
    time.sleep(1)
    pi.write(17, 0)
    time.sleep(1)

Programmbeispiel: Zustände aller GPIOs abfragen

import pigpio

pigpio.start()

for g in range(0,32):
    print("gpio {} is {}".format(g, pigpio.read(g)))

pigpio.stop()

Fehlermeldung: "ImportError: No module named pigpio"

Es fehlt das Python-Modul für „pigpio“. Das muss zuerst installiert werden.

GPIO mit Python programmieren

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!