#14 Arduino: Effetto tremolante con RGB

Oggi vedremo come creare un effetto tremolante con un LED RGB, visto l’avvicinarsi del natale potrebbe tornare utile come effetto fiamma per i focolari, ma cambiando le tonalità di colore si potrebbe usare per altri scopi.

Un LED RGB è un semplice led, almeno a livello esterno, che al suo interno ha 3 led di colori diversi, in particolare Rosso, Verde e Blu, da qui la sigla RGB (Red, Green, Blue).

Materiale necessario

Se siete interessati al materiale, cliccate su questo e sarete indirizzati alla pagina Amazon

I Questi led hanno 4 pin, uno per ogni colore ed il quarto in comune tra loro, in commercio vi sono led con anodo o catodo in comune, la differenza fra questi è solamente il tipo di collegamento, ma se usati con Arduino, avremo nel caso dei led con anodo in comune una gestione dei colori o di on-off invertita.

In sostanza avendo il pin positivo in comune (anodo), dobbiamo usare i pin dati come catodo, quindi per accendere il led dobbiamo impostare il pin in LOW, mentre per spegnerlo in HIGH, mentre per la gestione delle varie tonalità di colore dovendo usare il comando analogWrite, dobbiamo calcolare i valori RGB, che vanno da 0 a 255, come la differenza tra il valore voluto ed il valore massimo, facendo un esempio per avere un valore di 122 dobbiamo fare 255-122= 133 ed usare il 133; anche per On ed OFF dobbiamo invertire i valori usando 0 per ON ed 255 per OFF.

Si ma cosa sono questi numeri che ho scritto fino ad adesso?
Sono semplicemente i valori del colore desiderato in versione RGB, infatti la classificazione RGB di un colore è data da tre numeri, uno per il rosso, uno per il verde, uno per il blu, questi vanno da 0 a 255, al variare di questi otterremo colori diversi; ad esempio il colore con codice HEX #6666FF in RGB sarà (102, 102, 255).

Fatta questa premessa passiamo allo sketch, montiamo la nostra breadborad con il led e le resistenze appropriate, vi consiglio di pensare al led come tre led singoli ed usare quindi 3 resistenze, il valore di questa decidetelo voi in base al datasheet del led, ricordate che ogni colore ha tensione e corrente diversa.

Una volta fatti i collegamenti passiamo allo sketch:

Analizziamo lo sketch, salto la parte iniziale ed il setup e descrivo solo la parte del loop.

Inserisco delle variabili di tipo int, che avranno valori random compresi tra i valori scritti dentro le parentesi tonde, queste variabili sono rispettivamente il valore per il Verde e per il tempo del Delay.

Tramite il comando analogWrite che a differenza del digitalWrite mi permette di modulare l’uscita, creo il colore desiderato.

Volendo creare l’effetto fiamma, ho deciso di avere un colore casuale tra giallo e rosso, che vengono dati dagli analogWrite tramite un valore PWM, nel nostro caso 0 per il rosso (cioè acceso per via dell’anodo in comune), mentre per il verde è dato dalla variabile indicata in precedenza, il blu lo escludo non servendo per le tonalità che desidero.

Per finire imposto il tempo di Delay che varia da 100 ms a 250ms in modalità casuale come indica la variabile T.

Vi lascio il link della simulazione dello sketch, ma a causa di una simulazione poco veritiera dello sketch appena descritto, questo è stato modificato per permettere la dimostrazione dell’effetto.

Se avete dubbi o domande come sempre scrivete qui sotto.

/ 5
Grazie per aver votato!

Allegati