Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Led Bar con GPIOZero e Raspberry Pi

Utilizzo di una led bar tramite LEDBarGraph con GPIOZero e Raspberry Pi.
Utilizzo di una led bar tramite LEDBarGraph con GPIOZero e Raspberry Pi.
Link copiato negli appunti

In questa lezione illustreremo come controllare una led bar con Raspberry Pi e la libreria GPIOZero.
Una led bar è un array di led che viene generalmente utilizzato per visualizzare un livello (es: livello batteria, livello audio).
La led bar può essere realizzata come un componente già assemblato, oppure come facciamo in questa lezione, può essere realizzata partendo da una serie di led discreti.

Circuito Led Bar

Per realizzare il circuito della led bar, abbiamo bisogno di 5 led, 5 resistenze da 100 Ohm ed alcuni fili di collegamento.
Ovviamente possiamo creare led bar più corte o più lunghe, togliendo o aggiungendo led.

ledbar'circuit

La Classe Led Bar Graph

La led bar, all'interno della libreria GPIOZero, appartiene alla classe dei dispositivi di output compositi (CompositeDevice), e viene modellato da una semplice interfaccia intuitiva.
Il costruttore della classe ha la seguente sintassi:


LEDBarGraph(*pins, initial_value=0)
  • pins: serie di pin GPIO a cui sono collegati i vari led della led bar;
  • initial_value: valore iniziale compreso tra -1 e +1, default impostato a zero (led bar spenta).

La classe LEDBarGraph mette a disposizione i metodi on(), off() e toggle() con funzionamento analogo a quelli della classe Led, ma applicati a tutto l'array.
Vediamo un esempio di codice in cui facciamo lampeggiare la led bar con periodo 1 secondo.


from gpiozero import LEDBarGraph
from time import sleep

led_bar = LEDBarGraph(5, 6, 13, 19, 26)
while True:
    led_bar.on()
    sleep(1)
    led_bar.off()
    sleep(1)

Come vedete, il blink della led bar si ottiene in maniera esattamente analoga al lampeggiamento del led. Cambia solo il costruttore in quanto si usa la classe LEDBarGraph anziché la classe LED.
Come menzionato sopra, al costruttore della classe, vanno passati i GPIO, in numerazione BCM, a cui sono collegati i led della led bar.

La proprietà value

Anche questa classe espone la proprietà value. Per la classe Led poteva assumere valore 0 (spento) o 1 (acceso).
Per la classe LedBarGraph tale proprietà può assumere un valore float tra 0 e 1 oppure tra 0 e -1.
I valori tra 0 e 1 accendono in modo proporzionale (0% - 100%) la led bar da sinistra verso destra.
Al contrario, i valori tra 0 e -1 da sinistra a destra.
Quindi, nel nostro esempio con 5 led, il primo led rappresenta il 20% della led bar, quindi per accenderlo è necessario assegnare a value il valore 0.2 o 1/5.
In modo analogo per accendere la barra led al 60% è necessario assegnare a value 0.6 o 3/5.
Vediamo ora il codice di controllo della led bar che fa accendere tutta la barra, led per led da sinistra a destra e poi da destra a sinistra.


from gpiozero import LEDBarGraph
from time import sleep

NUM_LED=5
led_bar = LEDBarGraph(5, 6, 13, 19, 26)

while True:
    for led in range(1,NUM_LED+1):
        led_bar.value = led/NUM_LED
        sleep(0.2)

    for led in range(1,NUM_LED+1):
        led_bar.value = -led/NUM_LED
        sleep(0.2)

Quindi, possiamo generalizzare dicendo che per accendere i primi N led di una barra di M led, bisogna assegnare a value il valore N/M.

Conclusioni

In questa lezione abbiamo imparato a utilizzare una classe molto utile per il controllo di una led bar.
Questo tipo di led può essere molto utile in molti progetti maker da realizzare con il Raspberry Pi.

Ti consigliamo anche