Cerca

modulo attività

modulo tecnica

Controllare la lumonosità di un LED

In questo articolo si illustra il metodo di pilotaggio di un LED utilizzando la funzione PWM (Pulse Width Modulation)link1di micro:bit per regolarne la luminosità.LED suG

 

 

Come già illustrato nell'articololink1il LED è un componente elettronico che va pilotato in corrente nel senso che si deve fare in modo che la corrente sia di alcuni mA link1; se si pilota in tensione la sua fine è certa! (nota 1).

Con lo schema di figura accade quanto segue:

- se il punto "A" è a 3V, il LED è acceso a piena luce,

- se il punto "A" è a 0V, il LED è spento,

con micro:bit non ci sono possibilità intermedie perchè i pin di uscita (GPIO) sono digitali.

Essere pin digitali significa che si possono ottenere solo due valori di tensione: o 3V o 0V.

Se si avesse a disposizione un generatore a tensione variabile si potrebbe alimentare il circuito fornendo al punto "A" una tensione intermedia ottenendo una luminosità intermedia … ma con micro:bit non si può.

In alternativa sii potrebbe agire sul valore dela resistenza con analoghi effetti ma non ha senso andare a cambiare i componenti del circuito per realizzare questa funzione (nota 2).

Unica possibilità rimasta è il PWM (Pulse Width Modulation)link1 che micro:bit mette a disposizione con il comando

analogWrite

che è un comando del tipo "write_analog __" che implementa la tecnologia del PWM.

In questo modo, per regolare la luminosità del LED, si "parzializza la tensione" nel senso che si fa in modo di rendere intermittente l'alimentazione del circuito collegato al pin P0: periodicamente si modifica l'alimentazione del pin utilizzando un interruttore (un deviatore nel disegno) che altrernativamente collega il pin alla tensione di 3V o a 0V come schematizzato in figura.P0 LED2

Il ciclo acceso/spento deve ripetersi ad una frequenza tale da non produrre effetti indesiderati; in micro:bit la frequenza è 50Hz (nota 3).

Questo comando agisce sul duty cycle della tensione che alimenta il LED.

Il duty cycle, anche detto rapporto di intermittenza, è il rapporto fra durata di conduzione e periodo .

Se si scrive il valore "0", il duty cycle è "0", la tensione sul LED è zero per cui è spento; se si scrive "1023" il duty cycle è "100", la tensione è uguale a quella di alimentazione ed il LEd è alla massima luminosità.

Se si scrive "512" la tensione sul LED per metà periodo è 3V e per l'altra metà è 0V. L'occhio non si accorge dello sfarfallìo perchè non è abbastanza rapido e ne ricava una sensazione intermedia (nota 4).

Una volta realizzato il collegamento con l'uso della breadboard si può utilizzare il comando di cui sopra inserendo a piacere o tramite calcoli i valori di luminosità compresi fra 0 e 1023 (nota 5).

 

Approfondimenti qui link1.

Con la stessa tecnica ma per mezzo di un amplificatore di potenza si può controllare la luminosità di una lampadina ad incandesenza link1 o la velocità di un motorino link1.

 

Note

nota 1: alcuni sperimentatori mostrano LED collegati direttamente ad una PIN di micro:bit o Arduino: gli va solo bene! Sia perchè sono LED blu che hanno bisogno di tensioni elevate, prossime a quelle disponibili ai pin dei microcontrollori, sia perchè gli stessi controllori hanno una protezione che limita la corrente. Insistere significa distruggere il LED (nemmeno un euro) oppure il controllore (qualche euro): fate voi.

nota 2: in entrambi i casi la variazione non sarebbe proporzionale sebbene per ragioni diverse.

nota 3: la luce è intermittente anche se il cervello non lo percepisce. La luminosità appare minore ma lo sfarfallìo è comunque presente con conseguente produzione dell'effetto stroboscopico.

nota 4: in questo caso la luminosità è proporzionale al duty cycle (attenzione: non è così per la sensazione di luminosità percepita; il sistema occhio-cervello non è lineare così la percezione non è proporzionale all'intensità … e meno male!).

nota 5: la gamma 0-1023 comprende i 1024 valori possibili con 10 bit (2^10 =1024)