L’articolo di oggi potresti catalogarlo tra quelli destinati ai primi passi con Arduino, il suo funzionamento è semplice ma il risultato empirico che ne deriva è molto utile e ti servirà in molti progetti con i led RGB.
Lo scopo di questo esperimento è individuare il bianco composto dalla combinazione dei 3 colori RGB (Red, Green, Bleu), potresti procedere per tentativi successivi modificando i valori PWM che invii ad arduino ma ogni cambio comporterebbe un nuovo upload, riducendo il numero complessivi di esperimenti possibili con arduino in futuro e costringendoti a lunghe attese tra una prova e l’altra.
Ecco perché trovandomi in questa condizione ho preferito scrivermi uno sketch ad-hoc e testare così tutti i 50 led RGB acquistati su ebuy.
Occorrente:
- 1 arduino 2009 o UNO
- 1 led RGB a catodo ( – ) comune
- 1 resistenza da 470Ω
- 3 potenziometri da 10KΩ
- 1 breadboard
- 14 cavetti per realizzare il circuito
Lo schema dei collegamenti lo hai visto in alto, prima figura, lo sketch è il seguente:
void setup() { Serial.begin( 9600 ); pinMode( A0, INPUT ); pinMode( A1, INPUT ); pinMode( A2, INPUT ); pinMode( 3, OUTPUT ); pinMode( 5, OUTPUT ); pinMode( 6, OUTPUT ); } void loop() { int R = map( analogRead( A0 ),0,1023,0,255 ); int G = map( analogRead( A1 ),0,1023,0,255 ); int B = map( analogRead( A2 ),0,1023,0,255 ); Serial.print( "R: " ); Serial.print( R ); Serial.print( " G: " ); Serial.print( G ); Serial.print( " B: " ); Serial.println( B ); analogWrite( 3, R ); analogWrite( 5, G ); analogWrite( 6, B ); delay( 500 ); }
avai già notato come visualizzerai il valore di ciascun colore una volta raggiunto il bianco: il monitor seriale;
infatti alla linea 03: inizializzi il monitor seriale con una velocità di comunicazione di 9600 baud;
linee 05-07: imposti i pin analogici ( A0, A1 e A2 ) in modalità INPUT;
linee 09-11: imposti i pin PWM ( 3,5 e 6 ) in modalità OUTPUT, ossia invio dei segnali PWM;
linee 16-18: leggi per ciascun pin in INPUT il valore del potenziometro che varia da 0 a 1023, questo valore deve essere convertito in scala 0-255 per le uscite PWM e per farlo puoi utilizzare la funzione map( inputValue, minInput, maxInput, minOutput, maxOutput ) in cui il minInput e minOutput sono uguali e valgono 0, maxInput è 1023 ossia il valore massimo in input e maxOutput è 255 ossia il valore massimo in output per il PWM di arduino;
linee 20-25: queste linee inviano al monitor seriale il valore letto per ciascun potenziometro già mappato sull’output, quindi 0 – 255;
linee 27-29: inviano lo stesso valore che vedi sul monitor seriale per ciascun colore al rispettivo pin PWM;
linea 31: imposta un tempo di attesa di 1/2 secondo circa tra un loop ed il successivo, questo tempo ti da modo e tempo di verificare che il colore raggiunto sia quello desiderato e di leggerlo sul monitor seriale.
Nelle mie prove con differenti led RGB provenienti da uno stesso acquisto ho verificato che il colore bianco si raggiunge con i seguenti valori: Red = 100; Green=255; Bleu=255; e che proporzionalmente è possibile ottenere un effetto dissolvenza del bianco riducendo proporzionalmente i tre valori fino allo 0;
Ho approfittato anche di questo esperimento per realizzare altri colori come ad esempio il giallo con le componenti rosso e verde o il viola con rosso e bleu, ecc…
Insomma è un gioco semplice ma molto divertente ed utile per comprendere la dinamica dei led RGB e delle loro componenti.
Buon divertimento.
Prima di inserire un commento, per favore, leggi il regolamento
15 pings
Skip to comment form