o bé

Projecte d'il·luminació de suport d'un local social basat en leds RGB (RVB) controlats mitjançat la plataforma de computació fisica lliure Arduino.

circuit #1

Es tracta d'un circuit molt senzill, per tal de connectar un led RVB de 3 W a un arduino i controlar-lo. Servirà per a les primeres proves.

Veiem un esquema ràpid del circuit:

Per muntar-lo cal

·Led RVB 3W
·C.I. ULN2003
·3 resistències 22 ohms i 1 W
·una protoboard i alguns cables

i per provar-lo cal


·un arduino (per programar-lo amb el programa 1 o 2 (pex) i/o alimentar-lo a baixa potència)
.una font d'alimentació de 12 V cc i 300-500 mA (per alimentar-lo autonomament)




A la imatge de dalt podem veure el mòdul muntat en placa de prototipat de tires,  i connectat amb un connector pensat per a encaixar amb els pins de la placa d'arduino i mantenir la del led perpendicular a aquesta.


v:0.7

programa #2

Progressem una mica més per tal de veure les moltíssimes combinacions de colors que es poden obtenir d'aquests leds mitjançant les sortides PWM de la placa arduino i fent servir la funció random.

programa2-truefastrvbrandom

//inici del programa
//truefastrvbrandom
int r=0;
int v=0;
int b=0;

void rvb(int r, int v, int b) {
analogWrite(10,r);
analogWrite(11,v);
analogWrite(9,b);
}

void setup()
{
}

void loop()
{
int t=1000; //temps t en milisegons que
//espera per fer cada canvi
r=random(1,200); //treu un numero aletori entre el 1 i el 200
v=random(1,200); //un valor segur per a cada color RVB
b=random(1,200);
rvb(r,v,b); //aplica els valors a les sortides pwm 9, 10 i 11
delay(t);
} //fi del bucle
//fi del programa

v:0.7

programa #1

Un senzillet primer programa ens permetrà començar a endinsar-nos en la programació de l'arduino i també ens mostrarà les possibilitats dels leds RVB.

programa1-democolorsbasics

//aqui comenca el programa
//les dos barres vol dir comentaris
//tot el que hi hagi darrere
//sera ignorat pel compilador
int r=0; //declarem tres variables de tipus enter
int v=0; //roig verd i blau
int b=0;

void rvb(int r, int v, int b) { //funcio rvb,
analogWrite(10,r); //assigna als pins 9, 10 i 11 (PWM)
analogWrite(11,v); //els valors de r, v i b
analogWrite(9,b);
}

void setup()
{
}

void loop()
{
int color;
int t=2000; // temps t en milisegons que
//espera en fer cada canvi
v=200;
r=0;
b=0;
rvb(r,v,b);// mostra color verd
delay(t);
r=200;
rvb(r,v,b); //mostra color groc
delay(t);
v=0;
rvb(r,v,b); //mostra color vermell
delay(t);
b=200;
rvb(r,v,b); //mostra color lila
delay(t);
v=200;
rvb(r,v,b); //mostra color blanc
delay(t);
r=0;
rvb(r,v,b); //mostra color turquesa
delay(t);
v=0;
rvb(r,v,b); //mostra color blau
delay(t);

} //fi del bucle
//fi del programa

El següent video mostra l'execució del programa en un arduino nano, i el circuit #1 muntats en protoboard.




Nota: En aquesta entrada i, a partir d'ara en aquest bloc, en el text corresponent al codi i els seus comentaris, els accents, apòstrofs, dièresis i altres signes poc estàndars (electronicament parlant) han estat i seran omitits voluntariament per tal d'evitar problemes amb el compilador d'arduino i poder directament copiar i enganxar el codi. Espero que s'entengui.

v:0.9