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
- Raspberry Pi: GPIO mit Python programmieren
- Raspberry Pi: GPIO mit Python und GPIO Zero programmieren
- Raspberry Pi: GPIO mit Python und RPi.GPIO programmieren
Weitere verwandte Themen:
- Elektronik mit dem Raspberry Pi
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO steuern und programmieren
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.