top of page

Led RGB

Un LED RGB són 3 LEDs integrats en un mateix encapsulat:

un de color vermell (Red)

un de color verd (Green)

un de color blau (Blue)

Poden ser de ànode (+) comú o de càtode comú (-)

La seva aparença és la mateixa, el terminal més llarg en tots dos casos és el comú:

RGB2.png
RGB1.png

Connexió

Connectarem cada terminal de color a un pin digital a través de la resistència corresponent (recordeu que el valor de la resistència dependrà de la tensió de treball de cada led, que al seu torn depén del seu color).

El terminal comú, si el LED es d'ànode comú, l'haurem de connectar al pin d'limentació 3.3V, i si és de càtode comú, a un pin GND.

Esbrinem si el nostre LED RGB és d'ànode o de càtode comú

Connectem el terminal comú a GND.

Executem l'sketch Blink sobre només un dels pins de connexió de l'RGB.

Si el LED corresponent respón, l'RGB és de càtode comú.

Si no, és que és d'ànode comú, haurem de connectar el terminal comú al pin 3.3V. Ara hauria de funcionar.

digitalWrite (LedPin, HIGH/LOW);

Funcionament digital

Connectant-lo a 3 pins digitals podem aconseguir els tres colors bàsics de llum (activant només un dels tres colors), i els colors intermitjos (barreja de colors), activant a l'hora 2 o 3 pins.

rgb_cores_edited.png

Funcionament analògic

ledcWrite (canal, PWM);

Si enviem un senyal PWM de 8 bits (valors entre 0 i 255) per cada un dels pins de l'RGB, podem aconseguir fins a 256 x 256 x 256 = 16.777.216 colors diferents.

Alguns exemples de colors (valors de R, G, B) per a RGB de càtode comú:

  • Blanc: 255, 255, 255  /  Negre (apagat): 0, 0, 0

  • Vermell: 255, 0, 0  /  Verd: 0, 255, 0  /  Blau: 0, 0, 255

  • Groc: 255, 255, 0  /  Magenta: 255, 0, 255  /  Cian: 0, 255, 255

​Clicant sobre la imatge accedireu a una aplicació amb la que podreu obtenir

el codi dels colors que vulgueu.

Nota: Per visualitzar bé els colors, convé posar una paper blanc al darrera del led RGB.

Podem generar colors aleatoris amb la instrucció random (0, 255);

92593774.png

// valors amb que treballarem:

const int LedR = 5;  // GPIO per on sortirà el senyal PWM

const int LedG = 18;  // GPIO per on sortirà el senyal PWM

const int LedB = 19;  // GPIO per on sortirà el senyal PWM

// propietats del senyal PWM:

const int frecuencia = 5000;  // cal definir la freqüència del tren de polsos

const int resolucio = 8;           // resolució de 8 bits vol dir que podem controlar la lluentor del led mitjançant un valor PWM de 0 a 255

// treballem amb 3 canals per obtenir 3 senyals PWM diferents, una per a cada led:

const int canalR = 0; 

const int canalG = 1; 

const int canalB = 2; 

void setup ()   
{ 

  // assignem a cada canal la freqüència i la resolució definides:
  ledcSetup (canalR, frecuencia, resolucio);  

  ledcSetup (canalG, frecuencia, resolucio);  

  ledcSetup (canalB, frecuencia, resolucio);  

  // associem cada led amb un canal:

  ledcAttachPin (LedR, canal1);  

  ledcAttachPin (LedG, canal2);  

  ledcAttachPin (LedB, canal3);  
}

void loop ()    

  // treu un senyal PWM de valor aleatori diferent per cada canal:
  ledcWrite 
(canal1, random (0,255));   

  ledcWrite (canal2, random (0,255));  

  ledcWrite (canal3, random (0,255));

  delay (500);  // durant 500 ms 

bottom of page