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

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!