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