GIOCO DI LUCI CON LED RGB ED ARDUINO

Semplice Schema con Arduino e uno o più LED RGB utile a Generare tutti i Colori dello Spettro visivo…

 

 

 
 



 

INTRO

Un LED RGB è un led che al suo interno dispone di 3 diversi semiconduttori, ognuno in gradi di emettere un differente colore e in particolare rosso, verde e blu.

Come ben noto tutti i colori dello spettro possono essere realizzati da una combinazione dei colori fondamentali rosso verde e blu, come ad esempio accade nello schermo dei cellulari o delle televisioni dove ogni pixel in realtà e formato da tre pixel ancora più piccoli con colori verde rosso e blu.

Come ad esempio è possibile vedere dallo strumento dei colori di paint, il viola è formato da rosso per un valore di 128 e da blu per un valore di 255. Vi sono anche altri parametri come tonalità, saturazione e luminosità, ma questi non sono altro che altri modi per esprimere i colori.

È semplice con un sistema PWM variare la luminosità dei LED, e considerando che il PWM di Arduino può avere valori da 0 a 255, possiamo associare a questo valore la quantità di colore e andare a formare gli altri colori. Ad esempio settando il PWM del rosso a 128 e il PWM del blu a 255 possiamo ottenere il viola come in figura.

Questo schema utilizza 3 cicli di FOR per scansionare tra 0 e 255 i tre PWM associati ai tre colori e quindi ottenere tutte le possibili combinazioni di colore.

 



 

CODICE

Il codice è il seguente:

int LEDblu = 3;                 //Led blu al pin 3
int LEDrosso = 5;               //Led rosso al pin 5
int LEDverde = 6;               //Led verde al pin 6

int LumBlu = 0;                 //Valore tra 0 e 255 luminosità led Blu
int LumRosso = 0;               //Valore tra 0 e 255 luminosità led rosso
int LumVerde = 0;               //Valore tra 0 e 255 luminosità led verde

void setup(){  
pinMode(LEDblu, OUTPUT);        //Setta pin 3 come uscita PWM
pinMode(LEDverde, OUTPUT);      //Setta pin 5 come uscita PWM
pinMode(LEDrosso, OUTPUT);      //Setta pin 6 come uscita PWM
}

void loop(){

  for (LumVerde = 0; LumVerde < 239; LumVerde += + 16){   //PWM da 0 a 255 con incremento 16
    analogWrite(LEDverde, LumVerde);                      //Modifica PWM Verde
   
    for (LumRosso = 0; LumRosso < 247; LumRosso += 8){    //PWM da 0 a 255 con incremento 9
      analogWrite(LEDrosso, LumRosso);                    //Modifica PWM Rosso

        for (LumBlu = 0; LumBlu < 255; LumBlu ++){        //PWM da 0 a 255 con incremento 1  
          analogWrite(LEDblu, LumBlu);                    //Modifica PWM Blu             
          delay(20);                                      //Incrementa il Blu ogni 20mS
        }
    }
  }
}


Si inizializzano le prime tre variabili che servono per indicare i pin dove sono connessi i pin dei LED blu, rosso e verde e poi le tre variabili che contengono il valore del PWM. Nel ciclo di setup vengono inizializzati i tre pin come uscite.

Nel ciclo continuo vi è il primo FOR che fa variare la luminosità del verde da 0 a 239 con incremento 16, all’interno di questo ciclo vi è la stringa per modificare il PWM e poi vi è il For per variare la luminosità del Rosso che va da 0 a 247 con incremento 8 e all’interno di questo secondo FOR vi è il FOR per variare la luminosità del blu che va da 0 a 255 con incremento1.

Quindi alla prima iterazione il verde è a 0, il rosso anche e il blu inizia a variare da 0 a 255 ogni 20ms. Quando si hanno tutti i valori di blu si va ad incrementare il verde, quindi si avrà verde a valore 8 e poi si ritorna di nuovo nel ciclo FOR del blu facendo variare di nuovo i valori da 0 a 255 e così via.

 

SCHEMA

Lo schema è il seguente:

L’alimentazione può essere USB o tramite il jack dell’alimentazione.

Può essere usato in ugual modo un LED con anodo comune o catodo, il codice non cambia, vi è solo una piccola variazione nello schema.

Considerando una corrente per ogni colore di 3mA e una tensione di 1.8V per il rosso, 2V per il verde e 3.5V per il blu servono resistenze da 470 Ohm su tutti e tre i contatti, però visto che il colore verde risulta maggiormente visibile agli occhi si usa un resistore di maggiore valore, ovvero 560 Ohm.

Il pin in comune, in questo caso il 2 ovvero l’anodo , è connesso alla tensione positiva 5V di Arduino, nel caso si usi un LED RGB a catodo comune invece il pin in comune va collegato al GND di Arduino. Se non si ha un LED RGB si possono usare tre distinti LED ma l’effetto non è uguale.

 

DOWNLOAD

Potete scaricare lo SKETCH per l’IDE di ARDUINO al seguente LINK!!!



 

[Voti Totali: 1 Media Voti: 5]
Segui la Nostra Pagina Facebook: Facebook

1 pensiero su “GIOCO DI LUCI CON LED RGB ED ARDUINO

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *