Corso base di Arduino il PWM e LED RGB

banner prova1

Consigliamo di dare una lettura alla precedente lezione del corso su Arduino, che ha trattato la generazione del segnale PWM. È utile in tante occasioni, anche quella rivolta all'accensione di un diodo LED RGB (o di una lampada RGB), al fine di ottenere una illuminazione variamente colorata.

Il diodo LED RGB

Un diodo LED RGB, infatti è un unico dispositivo contenente tre singoli LED di colore rosso, verde e blu (RGB appunto, dal nome dei colori in lingua inglese). È dotato di quattro terminali: il catodo comune e altri tre reofori corrispondenti agli anodi degli altrettanti colori (esiste anche il modello inverso). Per il suo funzionamento occorre utilizzare sempre le relative resistenze di limitazione. Dosando opportunamente il flusso di corrente ad esso fornita o, nel nostro caso, variando il duty cycle del segnale PWM, è possibile ottenere diverse intensità di luminosità e colori. La mescolanza dei tre colori fondamentali, infatti, crea diverse sfumature di luce.

La figura 1 mostra il semplice cablaggio. Si tratta di un diodo LED RGB a catodo comune, le resistenze di limitazione sono di 220 ohm. Si controlli, tuttavia, la corretta piedinatura del diodo a disposizione, poiché potrebbe cambiare da caso a caso. Le porte utilizzate di Arduino sono la numero 11 (rosso), la 10 (verde) e la 9 (blu). Per tali porte la scheda offre una generazione hardware del PWM. Vediamo di cosa si tratta.

figura 1 cablaggio
FIGURA 1 cablaggio

Il PWM Hardware

A differenza della precedente puntata, questa volta produrremo il PWM in maniera del tutto automatica. Illuminando i tre componenti del diodo LED con diversi livelli di potenza è possibile ottenere tante sfumature di luce, secondo le combinazioni elencate in figura 2.

figura 2 colori
FIGURA 2 colori primari e secondari
figura 3 listato

Lo sketch di Arduino, una volta compilato e caricato, permette di eseguire diverse colorazioni del diodo LED, dalla durata di un secondo per colore, come segue: Rosso, Verde, Blu, Bianco, Porpora, Giallo, Nero (spento). Il cuore del programma è la funzione analogWrite(pin,valore) che invia una tensione analogica, creata tramite PWM, su un determinato pin. Dopo l'esecuzione di tale funzione, Arduino genera un'onda quadra sulla porta specificata e a un determinato duty cycle, compreso tra 0 e 255. Per generare un PWM del 50% occorre specificare, come parametro, il valore 128.

Con tale varietà di scelte combinative, il numero massimo di sfumature di luce è:

256 x 256 x 256 = 256^3 = 16.777.216.

Nel listato si notano diverse argomentazioni. Innanzi tutto è stata creata una funzione, ColoraLed(r,g,b), che riceve la tonalità di colore desiderato tramite tre parametri e provvede a inoltrare tali valori direttamente sulle porte di uscita. Volendo accorciare ulteriormente il listato, si può inserire la pausa di ritardo in coda a tale funzione UDF e toglierla dalla funzione loop().

Infine, per creare un effetto alba o tramonto di colori alternati, è sufficiente sottoporre tale funzione all'interno di uno o più cicli, in modo da cambiare continuamente l'entità dell'illuminazione.

listato
Tom's Consiglia

Per chi inizia ora e voglia dotarsi di tutto l'occorrente, Arduino Uno si trova facilmente a un prezzo abbordabile.

Pubblicità

AREE TEMATICHE