
GPIOzero und LEDBarGraph
von Rainer R.
Elektronik-Labor
Projekte
Mikrocontroller
Raspberry
Die gpiozero-Routinen für Python sind ein umfangreiches Set von
Hilfsprogrammen und vereinfachen die GPIO-Ansteuerung durch
Unterstützung von verschiedenen Hardwarekomponenten sehr. Ab Raspbian
Jessie ist diese Library für Python bereits im Image enthalten und
kann sofort verwendet werden. Bei älteren Versionen kann sie mit
sudo apt-get upgrade
sudo apt-get install python-gpiozero
sudo apt-get install python3-gpiozero
für beide Python-Versionen nachgerüstet werden.
Die Funktionen sind auf der Seite https://gpiozero.readthedocs.org
ausführlich beschrieben. Python-Programme, die diese Routinen nutzen,
brauchen keine Sudo-Berechtigung bei der Durchführung. Hier als
Beispiel das opligatorische Blinkprogramm:
from gpiozero import LED
from time import sleep
led = LED(14)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Mit den schönen LEDs von AK Modul-Bus mit eingebautem Widerstand ist schnell ein Testboard zur Tasse Kaffee zusammengesteckt um noch ein paar Aufrufe auszuprobieren.
Hier noch etwas LED-Blinken:
#! /usr/bin/env python
# -*- coding: utf-8
import gpiozero
from time import sleep
# LED an Pin 14 an- und ausschalten
led14 = gpiozero.LED(14)
led14.on()
sleep(1)
led14.off()
sleep(1)
led14.close()
# LED an Pin 14 dimmen
pwmled14 = gpiozero.PWMLED(14)
for i in range (101):
pwmled14.value =i / 100
sleep(0.01)
sleep(1)
pwmled14.close()
# LEDs an Pin 14,15,18 gleichzeitig blinken
leds = gpiozero.LEDBoard(14,15,18)
leds.blink(on_time=0.2,off_time=0.5, n=5, background=True)
Und so sieht es aus:
Hier
ein Beispiel der gpiozero-Routine LEDBarGraph. Auch mit
LEDs mit internen Widerstand zusammengesteckt. Die Pins und die
Reihenfolge der LEDs werden mit „LEDBarGraph“ festgelegt. „Value“
zwischen 0 und 1 regelt dann die Breite des leuchtenden Balkens; bei 0
alle aus und bei 1 alle an. Mit „Value-Werten“ zwischen 0 und -1
alles in umgekehrter Richtung. Nachzulesen auch in der Dokumentation
der Routinen auf der Seite https://gpiozero.readthedocs.org/en/v1.1.0/api_boards.html#led-bar-graph
Das Programm:
#! /usr/bin/env python
# -*- coding: utf-8
import gpiozero
from time import sleep
# LEDBar steuern mit Value 0 bis 1 und -1 bis 0 je nach Richtung
ledbar = gpiozero.LEDBarGraph(14,15,18,23,24,25,8,7,12,16,20,21,26)
while True:
for i in range (14):
ledbar.value = i/13
sleep(0.1)
for i in range (14):
ledbar.value = -i/13
sleep(0.1)
sleep(1)
ledbar.off()
Und so sieht es dann aus:
Elektronik-Labor
Projekte
Mikrocontroller
Raspberry