home

Dokumentation Raspberry Pi GPIO (RPi_GPIO)

 

Allgemeines:

Das General Purpose Input Output System des Raspberry Pi hat 17 Datenleitungen (Rev.B board: 26), die individuell als Eingang (Input) oder Ausgang (Output) definiert werden können. Es gibt im Modul RPi_GPIO zwei Nummerierungsarten für die Pfostenstifte: Standardmässig werden die Pin-Nummern 1..26 verwendet (Rev.B board: 1..40). Alternativ kann eine Nummerierung 0..16 (Rev.B board: 0..25) mit fortlaufenden Pins auf der einen und dann auf der anderen Seite des Pfostensteckers verwendet werden (Mode: LINE). In beiden Fällen werden die Ein- bzw. Ausgänge als channels bezeichnet.
  GPIOPins

Das Programm muss als Root User (mit Supervisor Rechten) laufen, damit es auf das GPIO-System zugreifen kann!

Das API ist weitgehend kompatibel zum Python-Modul RPi.GPIO, so dass es einfach ist, Programme zu portieren.

 

Module import: from RPi_GPIO import GPIO

Klasse GPIO:

Methode Aktion
GPIO.BOARD

Konstante für setmode(): Channel-Nummerierung mit Pfostennummern (default). Wert: 0

GPIO.LINE Konstante für setmode(): Channel-Nummerierung in Reihe für 26-pin Stecker. Wert: 1
GPIO.LINE40 Konstante für setmode(): Channel-Nummerierung in Reihe für 40-pin Stecker. Wert: 2
GPIO.OUT Konstante für setup(): Ausgangs-Channel. Wert: 0
GPIO.IN Konstante für setup(): Eingangs-Channel. Wert: 1
GPIO.LOW Logikpegel tief, entprechend 0V. Wert: 0
GPIO.HIGH Logigpegel hoch, entsprechend 3.3V. Wert: 1
GPIO.PUD_DOWN Konstante füf setup(): Interner Pulldown-Widerstand. Wert: 2
GPIO.PUD_UP Konstante füf setup(): Interner Pullup-Widerstand. Wert: 3
GPIO.PUD_NONE Konstante füf setup(): Kein interner Widerstand (floating). Wert: 4
GPIO.RISING Konstante für add_event_detect(): Triggerevent auf steigender Flanke
GPIO.FALLING Konstante für add_event_detect(): Triggerevent auf fallender Flanke
GPIO.BOTH Konstante für add_event_detect(): Triggerevent auf beiden Flanken
GPIO.setmode(mode) wählt den Channel-Nummerierungsmodus: BOARD oder LINE
GPIO.setup(channel, ioControl, option) wählt den Channel als Ein- oder Ausgang. Ausgang: option HIGH/LOW setzt Initialisierungswert; Eingang: option PUD_UP, PUD_DOWN, PUD_NONE wählt internen Pullup/down-Widerstand
GPIO.cleanup() gibt alle Ressourcen frei und setzt Standardwerte
GPIO.out(channel, state) setzt den Zustand eines Ausgangs-Channels
GPIO.input(channel) liefert den Zustand eines Input-Channels (für Ausgangs-Channels den aktuell gesetzten Wert)
GPIO.add_event_detect(channel, trigger) bereitet den Channel für Trigger-Events vor und wählt die Triggerflanke (RISING, FALLING, BOTH)
GPIO.add_event_callback(channel, callback, bounceTime) registriert für den Channel eine Callbackfunktion. Nach einem Triggerevent sind weitere Events während der bounceTime (in ms) inaktiv. Die Callbackfunktion hat die Signatur callback(channel, state) mit dem aktuellen Channel und seinem Zustand
GPIO.add_event_callback(channel, callback) dasselbe mit bounceTime = 0
GPIO.wait_for_edge(channel, trigger) wartet endlos auf einen Triggerevent, so wie er mit add_event_detect() definiert wurde
GPIO.wait_for_edge(channel, trigger, timeout) wartet die maximale Zeit timeout (in ms) auf einen Triggerevent. Gibt 0 zurück, falls während dieser Zeit ein Event erfolgt, sonst wird -1 zurückgegeben
GPIO.event_detected(channel) gibt True zurück, falls ein mit add_event_detect() vorbereiteter Trigger seit dem letzten Aufruf eingetreten ist
GPIO.getVersion() gibt die aktuelle Version als String zurück
p = GPIO.PWM(channel, freq, duty) erzeugt und startet einen Pulse-Width-Modulation Generator mit geg. Frequenz (1..500 Hz) und geg. duty cycle (0...100 %). Gibt eine Referenz auf PWM zurück
p = GPIO.PWM(channel, freq) erzeugt einen Pulse-Width-Modulation Generator mit geg. Frequenz (1..500 Hz), startet ihn aber nicht (duty = 0).. Gibt eine Referenz auf PWM zurück
p.start(duty) startet oder setzt den PWM mit geg. duty cycle (0..100 %)
p.changeDutyCycle(duty) startet oder setzt den PWM mit geg. duty cycle (0..100 %)
p.stop() stoppt den PWM (setzt duty = 0)
GPIO.delay(ms) hält den Prozess während ms Millisekunden an

 

home