Tutorial: arduino, led rgb e potenziometri

E’ da tanto che non scrivevo un articolo sui Led, il monto dell’illuminazione mi affascina da sempre e sicuramente sono stati una forte spinta verso Arduino, proprio perchè con questa fantastica scheda, qualche componente e un po’ di fantasia …

Led RGB e Potenziometri

… puoi ottenere degli effetti davvero interssanti per i tuoi progetti.

Nello schema in alto puoi vedere come collegare un led RGB a catodo comune, due potenziometri ed arduino.

Ho volutamente utilizzato due potenziometri in quanto nei led RGB la caduta di tensione ai capi del diodo colore non è la stessa per tutti e tre i colori, in particolare nel tipo di led da me acquistato il led rosso ha una cadita di 1,9 – 2,2 v mentre i led verde e blue presentano una caduta di tensione di 3,3 – 3,5 v.

Se il tuo led dovesse avere differenti cadute di tensione risoetto ai colori potrai modificare lo sketch per adattarlo alle tue esigenze.

Ho protetto il led con un unica resistenza da 470Ω sufficente sia se alimenti il circuito a 5v sia se lo alimenti a 12v. Ti basta un unica resistenza collegata tra polo negativo e catodo essendo quest’ultimo comune a tutti i diodi led incassati nel contenitore plastico da 5mm.

Ed ecco lo sketch:

/*
 * Sketch Led RGB e potenziometri
 *
 * @author: Alfieri Mauro
 * @see:    https://www.mauroalfieri.it
 *
 * @licenze: Creative common
 */

int ledR = 9;
int ledG = 10;
int ledB = 11;

int potA = A5;
int potB = A4;

void setup()
{
  pinMode(ledR,OUTPUT);
  pinMode(ledG,OUTPUT);
  pinMode(ledB,OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  int valA = map(analogRead(potA),0,1023,0,255);
  int valB = map(analogRead(potB),0,1023,0,255);

  Serial.print(" Potenziometro A: ");
  Serial.print( valA );
  Serial.print(" Potenziometro B: ");
  Serial.println( valB );

  analogWrite(ledR,valA);
  analogWrite(ledG,valB);
  analogWrite(ledB,valB);
}

linee 10-12: definisci 3 variabili di tipo integer per indicare i pin di OUTPUT con cui piloterai i 3 colori del led distintamente;

linee 14-15: definisci altre due variabili di tipo integer per indicare i pin di INPUT analogico A5 e A4 a cui sono collegati i due potenziometri;

linee 19-21: indica ad arduino che i tre pin assegnati alle variabili ledR, ledG e ledB sono da utilizzare come OUTPUT;

linea 23: imposta la comunicazione seriale tra Arduino e il tuo computer o mac a 9600 baud, userai questa connessione per vedere a video i valori letti dai potenziometri e tradotti in scala 0-255 per i led;

linee 28-29: sono il cuore dello sketch o almeno la prima parte del cuore :-), con il comando analogRead(pin), dove il pin glielo passi attraverso una variabile definita alle linee 14 o 15, leggi il valore dal potenziometro. Come sai il valore letto varia da 0 a 1023, ossia 1024 step, tuttavia al led questa informazioni sarebbe superflua perchè il valore in OUTPUT possibile sui pin PWM di arduino è 0-255, se non facessi nulla otterresti che nel primo quarto, circa, di rotazione il led varia la sua luminosità e dal valore 255 in poi resterebbe sempre alla massima intensità luminosa. Per correggere questa differenta tra INPUT ed OUTPUT arduino ti mette a disposizione la funzione map(valore,minInput,maxInput,minOutput,maxOutput) con cui traslare, più o meno in modo lineare, i valori letti su un pin analogico dalla scala 0-1023 alla scala 0-255;

potresti fare questa proporzione con dei calcoli e crearti tu una funzione, ma arduino ti semplifica la vita e te ne da una già fatta e collaudata;

linee 31-34: printano sul monitor seriale i valori provenienti dai poteziometri A e B traslati dalla funzione map();

linee 36-38: finalmente il duro lavoro è concluso, scherzi a parte, con la funzione analogWrite() scrivi il vaore del potenziometro A sul led Rosso ed il valore del potenziometro B sui led Green e Blu.

Se non ti è chiaro perchè utilizzo la funzione analogWrite() se ho collegato il led alle uscite digitali PWM puoi leggere questo mio articolo che ti chiarirà le idee: Programmare con Arduino – Pin Digitali e Analogici.

Buon divertimento

Prima di inserire un commento, per favore, leggi il regolamento

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

16 pings

Skip to comment form

  1. […] precedente: Tutorial: arduino, led rgb e potenziometri hai potuto realizzare un controllo RGB per il tuo led con soli due potenziometri, […]

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.