Raspberry Pi: GPIO mit Python und RPi.GPIO programmieren
„RPi.GPIO“ ist der Klassiker unter den Python-GPIO-Bibliotheken. Die meisten Programmierbeispiele mit dem Raspberry Pi zum Steuern und Programmieren der GPIOs verwenden diese Bibliothek. Allerdings gibt es mit „pgpio“ und „gpiozero“ bessere Bibliotheken, die die Programmierung mit GPIOs auf dem Raspberry Pi stark vereinfachen.
RPi.GPIO installieren
In der Regel ist diese Python-Bibliothek standardmäßig installiert.
Wenn die Bibliothek noch nicht installiert ist, sind folgende Kommandos auszuführen.
sudo apt-get update sudo apt-get install python-rpi.gpio
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. "RPi.GPIO" verwendet hierfür wahlweise BCM-Nummerierung oder die Nummer des Pins.
Hinweis: Bei den folgenden Zeilen handelt es sich um keine sinnvolle und vollständig laufende Anwendung, sondern nur um Beispiele, wie die GPIOs als Eingang oder Ausgang konfiguriert und deren Zustände gesetzt und gelesen werden können.
# GPIO-Bibliothek laden import RPi.GPIO as GPIO # BCM-Nummerierung verwenden GPIO.setmode(GPIO.BCM) # GPIO 17 (Pin 11) als Ausgang setzen GPIO.setup(17, GPIO.OUT) # GPIO 17 (Pin 11) auf HIGH setzen GPIO.output(17, True) # GPIO 17 (Pin 11) auf LOW setzen GPIO.output(17, false) # GPIO 18 (Pin 12) als Eingang setzen GPIO.setup(18, GPIO.IN) # GPIO 18 (Pin 12) lesen und ausgeben print (GPIO.input(18)) # Benutzte GPIOs freigeben GPIO.cleanup()
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.
LINK: GPIO-Ausgang mit einer LED beschalten
import RPi.GPIO as GPIO import time GPIO.setmode (GPIO.BCM) GPIO.setup (17, GPIO.OUT) while True: GPIO.output(17, True) time.sleep(1) GPIO.output(17, False) time.sleep(1)
Unterschied zwischen „GPIO.BCM“ und „GPIO.BOARD“
Mit „GPIO.setmode(GPIO.BCM)“ bzw. „GPIO.setmode(GPIO.BOARD)“ setzt man das Nummern-Schema, mit dem die GPIOs adressiert werden sollen.
- GPIO.BCM verwendet die logischen GPIO-Nummern im System-on-Chip.
- GPIO.BOARD verwendet die physikalischen Pin-Nummern auf dem Raspberry Pi.
Welches Nummern-Schema man verwendet, kann jeder für sich selber entscheiden. Der eine zählt lieber die Pin-Leiste nach der richtigen Pin-Nummern ab, ein anderer arbeitet lieber mit der logischen GPIO-Nummern.
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 pigpio programmieren
Weitere verwandte Themen:
- Raspberry Pi: GPIO beschalten
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO steuern und programmieren
- Raspberry Pi: GPIO mit Python und GPIO Zero 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.