Omet navegació

6.2) Leds RGB

1) Definició de RGB i LedRGB-Seqüència

Un led RGB és en realitat tres leds que comparteixen el càtode (GND o -) i tenen tres ànodes (+) associats a tres colors bàsics  (Red/Roig) , (Green/Verd) i (Blue/Blau).  Variant la intensitat amb que brilla cada led aconseguim tots els colors de l'arc de Sant Martí.

Anem a veure-ho amb el següent muntatge.

Led RGB + Arduino

Podem mirar quina combinació de colors podem crear. Obre el programa Inskscape de Lliurex i dibuixa un cercle a l'eina el·líptica ( fletxa 1), escull l’eina editora de color (fletxa 2), i amb el cercle seleccionat varia la intensitat del Roig (fletxa 3) , del Green/Verd (fletxa 4) i del Blau (fletxa 5).

Color RGB a Inkscape

(Nota: A vora les propietats RGB hi la propietat «A» que és la opacitat que val 255 per tal que el cercle no siga transparent però aquesta propietat no la pot controlar BlocklyDuino, sols inkscape, per això al fer mescles de colors per Arduino la mantindrem a 255 dins de Inkscape).

Si esculls un color Roig pur tindràs un RGB = (255, 0, 0)

Red

Si esculls un color Green/Verd pur tindràs un RGB = (0, 255, 0)

Verd

Si esculls un colors Blau pur tindràs un RGB = (0, 0, 255)

Blau

Anem a veure com traguem partit a un led RGB amb BlocklyDuino.

Fes el següent programa i anomena'l LedRGB_Seqüència

Leds_RGB_sequencia

Fixa't que em definit funcions amb el nom del color que volem obtindre fent la mescla de colors RGB. Després al programa principal cridem les funcions i les executem els temps que esperem després de cada cridada de funció.

Mira el programa equivalent amb Arduino IDE.




// Pinta de roig el led
void Roig() {
  analogWrite(3,255);
  analogWrite(5,0);
  analogWrite(6,0);
}


// Pinta de blanc el led
void Blanc() {
  analogWrite(3,255);
  analogWrite(5,255);
  analogWrite(6,255);
}


// Pinta de groc el led
void Groc() {
  analogWrite(3,255);
  analogWrite(5,255);
  analogWrite(6,0);
}


// Pinta de verd el led
void Verd() {
  analogWrite(3,0);
  analogWrite(5,255);
  analogWrite(6,0);
}


// Apaga el led
void NegreApagat() {
  analogWrite(3,0);
  analogWrite(5,0);
  analogWrite(6,0);
}


// Pinta de porpra el led
void Porpra() {
  analogWrite(3,255);
  analogWrite(5,0);
  analogWrite(6,255);
}


// Pinta de blau el led
void Blau() {
  analogWrite(3,0);
  analogWrite(5,0);
  analogWrite(6,255);
}


// Pinta de blaucel el led
void BlauCel() {
  analogWrite(3,0);
  analogWrite(5,255);
  analogWrite(6,255);
}



void setup() {
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);

}

void loop() {
    BlauCel();
    delay(1000);
    Blanc();
    delay(1000);
    Groc();
    delay(1000);
    Porpra();
    delay(1000);
    Roig();
    delay(1000);
    Verd();
    delay(1000);
    Blau();

}

Fes la Pràctica RGB 1.

2) Ús de PWM amb LedRGB-2

Amb el mateix muntatge que hem vist adés.  Escriu el programa aquest, i anomena-lo LedRGB-2

LedRGB-2

Fixa't que als pins 3, 5, 6 fem variar la variable Color des de 0 fins 255 emprant el Pols amb AnalogWrite dins d'un for_next.

Mira el programa equivalent en Arduino IDE.

int Color;

//
// Atura el led RGB
void Apagat() {
  analogWrite(3,0);
  analogWrite(5,0);
  analogWrite(6,0);
}
void setup() {  pinMode(3, OUTPUT);  pinMode(5, OUTPUT);  pinMode(6, OUTPUT);  Serial.begin(9600); } void loop() {    for (Color = 0; Color <= 255; Color=Color+1) {      Serial.println("Led Roig pin=3");      Serial.println("Variem PWM des de 0 fins 255");      analogWrite(3, Color);      delay(10);      Apagat();    }    delay(1000);    for (Color = 0; Color <= 255; Color=Color+1) {      Serial.println("Led Verd/Green pin=5");      Serial.println("Variem PWM des de 0 fins 255");      analogWrite(5, Color);      delay(10);      Apagat();    }    delay(1000);    for (Color = 0; Color <= 255; Color=Color+1) {      Serial.println("Led Blau pin=6");      Serial.println("Variem PWM des de 0 fins 255");      analogWrite(6, Color);      delay(10);      Apagat();    }    delay(1000); }

Fes la pràctica RGB 2.