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

Controllo Led con GPIOZero - parte 3

Terza e ultima parte di una serie di lezioni volte a comprendere l'utilizzo di led su Raspberry Pi sfruttando la libreria GPIOZero.
Terza e ultima parte di una serie di lezioni volte a comprendere l'utilizzo di led su Raspberry Pi sfruttando la libreria GPIOZero.
Link copiato negli appunti

Nella prima e seconda parte di questa lezione abbiamo analizzato importanti concetti come il current sink e current source. Abbiamo, inoltre, descritto alcuni metodi della classe LED.
In questa terza e ultima parte della lezione vedremo altri esempi di codice per controllare un led e analizzeremo ulteriori metodi della libreria GPIOZero.

Lampeggio asimmetrico

Il metodo blink() per default genera un lampeggio simmetrico in cui il led rimane acceso e spento per lo stesso periodo di tempo.
Per ottenere un lampeggio asimmetrico, in cui il tempo di accensione è diverso dal tempo di spegnimento, è necessario utilizzare i parametri on_time e off_time del metodo blink.
Il parametro on_time definisce il tempo in cui il led rimane acceso mentre il parametro off_line definisce il tempo in cui il led rimane spento.
Il codice seguente fa quindi lampeggiare un led mantenendolo acceso per un decimo di secondo ogni mezzo secondo.


from GPIOZero import LED

print("Inizializzazione Led")
led = LED(24)

print("Inizio lampeggio Led")
led.blink(on_time=0.1, off_time=0.4, background=False)
print("Fine lampeggio led")

Non è stato usato il metodo pause() in quanto il metodo blink() è stato invocato con il parametro background = False. Ciò significa che l’esecuzione del metodo blink() non avviene in un thread separato pertanto il controllo non sarà mai restituito al flusso principale.
In questo caso la chiamata al metodo blink() è definita "bloccante". Come potrete osservare in console la stringa "Fine lampeggio led" non viene mai stampata in quanto l’ultima istruzione eseguita è blink().

Lampeggio limitato

Fino a ora, in tutti gli esempi presentati, il lampeggio del led è sempre stato infinito. Esiste la possibilità di far lampeggiare il led per un numero finito di volte.
La libreria GPIOZero fornisce un modo semplice ed efficace per raggiungere il risultato.


from GPIOZero import LED

print("Inizializzazione Led")
led = LED(24)

print("Inizio lampeggio Led")
led.blink(on_time=0.1, off_time=0.5, n=10, background=False)
print("Fine lampeggio led")

Il metodo blink() è stato invocato specificando il parametro n=10. Ciò significa che il led lampeggerà esattamente per 10 volte e poi sarà spento.
Eseguendo questo codice, al termine del lampeggio, la stringa "Fine lampeggio led" viene stampata, in quanto il metodo blink(), pur essendo bloccante, restituisce il controllo al flusso principale dopo 10 lampeggi.

Conclusioni

In questa terza e ultima parte della lezione abbiamo completato l'analisi di tutti i metodi che la classe LED mette a disposizione per controllare un led e abbiamo anche compreso come farlo lampeggiare in modo asimmetrico e limitato.
Nella lezione successiva descriveremo l'uso della libreria GPIOZero per controllare un dispositivo di input come, a esempio, un semplice pulsante.

Ti consigliamo anche