I LED RGB ci permettono di utilizzare un solo elemento circuitale per la generazione di tutti i colori a noi visibili.
Per non cadere in errore alla prima prova è necessario conoscere alcuni principi di elettronica e di ottica.
Innanzitutto, i LED RGB generano i colori dello spettro per "somma" di opportuni "coefficienti tricromatici" sulle tre componenti di colori fondamentali, il ROSSO, il VERDE, il BLU, che con terminologia anglosassone abbrevieremo in R (red), G (green), B (blue) .
Un altro problema viene a complicare ulteriormente la vita dell'apprendista sperimentatore, spesso dotato di scarse conoscenze di elettronica e di ottica: la presenza, sul mercato, di due macro-famiglie di LED RGB: quelli a "Catodo Comune" e quelli ad "Anodo Comune".
In effetti, queste due famiglie sono state ideate per semplificare la progettazione di circuiti, dando due possibilità al progettista. Basta usare questi componenti in modo appropriato.
Generalmente,
- Quelli a 'catodo comune' si pilotano comandandoli dall'anodo, con catodo a massa.
- Quelli ad 'anodo comune' si pilotano comandandoli dal catodo, con anodo al positivo di alimentazione.
Il principio comune è quello di creare sulla giunzione la giusta tensione di polarizzazione e la giusta corrente, determinata dal circuito di polarizzazione.
In generale, per abilitare l'emissione del colore rosso con Arduino: Basta l'istruzione:
analogWrite(Rosso, r ),
dove "Rosso" è il piedino del LED e "r" il valore numerico da impostare.
LED a "catodo comune":
il valore di "r" è il massimo, se vogliamo un rosso pieno, cioè 255.
In pratica, per accendere il rosso si opera con::
spento analogWrite(Rosso, 0),
acceso analogWrite(Rosso, 255);
Analogamente per gli altri coefficienti e per tutti i colori composti, con tecnica "additiva".
LED ad anodo comune:
Per generare il Rosso con lo stesso principio serve una istruzione analoga ma per avere lo stesso coefficiente di colore i valori vanno complementati a 255.
In pratica, per accendere il rosso si opera con:
spento analogWrite(Rosso, 255),
acceso analogWrite(Rosso, 0);
Per ottenere colori composti si opera in modo analogo; ad esempio, per ottenere l'arancione si deve miscelare rosso e verde.
A "catodo comune" si imposteranno i valori:
spento analogWrite(Rosso, 0); analogWrite(Verde, 0); analogWrite(Blu, 0);
acceso analogWrite(Rosso, 255); analogWrite(Verde, 128); analogWrite(Blu, 0);
dove il terzo colore non darà contributo.
Ad "anodo comune" si imposteranno i valori complementari:
spento: analogWrite(Rosso, 255); analogWrite(Verde, 255); analogWrite(Blu, 255);
acceso analogWrite(Rosso, 0); analogWrite(Verde, 127); analogWrite(Blu, 255);
dove il terzo colore non darà contributo.
In pratica, se volessimo accendere l'arancione con un LED ad "anodo comune" (255,128,0) ed usassimo i valori del "catodo comune" avremmo come risultato la generazione di un colore "complementare" (azzurro), come derivato dei tre coefficienti tricromatici (0,127,255).
In conclusione, cambiando famiglia di LED RGB i valori da impostare vanno tutti complementati, compreso lo spegnimento!
Lo sketch e la simulazione del circuito sono disponibili per l'analisi e il download.
Nota:
Attenzione anche alla piedinatura:
per LED a catodo comune: Rosso - GND - Blu - Verde !!!
GND ha il gambo lungo e si riconosce facilmente.
Analogamente, per quelli ad anodo comune, dove al posto di GND troveremo V+:
Rosso - V+ - Blu - Verde !!!
Nota per gli aspiranti elettronici e soprattutto per gli aspiranti informatici:
La resistenza di polarizzazione dei diodi LED va sempre inserita! Serve a stabilire la giusta corrente nel diodo e, SOPRATTUTTO, serve a stabilizzare il punto di lavoro, cosa molto importante per farli durare a lungo, senza problemi!
Simulazione:
Argomenti correlati:
Arduino N° 23 - Fader per canali RGB
> Arduino N° 87
Nessun commento:
Posta un commento