Tutorial: arduino, 3 led e 3 potenziometri

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.

schema led RGB potenziometri

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
Se non hai mai lavorato con i led RGB probabilmente ti sarai detto che cosa ci vuole ad avere il bianco porto a 255 tutti e tre i valori PWM, in linea teorica questo è vero, ci sono però delle considerazioni reali dovute al metodo costruttivo del led RGB, al tipo di resistenza utilizzata, al materiale con cui ogni colore vieve realizzato … tutto questo causa che collegando una sola resistenza da 470Ω in serie al catodo e inviando +5v a tutti e tre i pin RGB la risultante è rossa e non  bianco.

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

Permanent link to this article: https://www.mauroalfieri.it/elettronica/tutorial-arduino-3-led-e-3-potenziometri.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.