Étiquettes : , ,

La LED RVB permet d’obtenir un large panel de couleurs. Elle est composée de trois mini LEDs, rouge, verte et bleue (d’où leur nom RVB ou RGB, en anglais); suffisamment proches pour que leurs lumières se mélangent. De ce fait, elle se pilote de la même façon que trois LEDs indépendantes.

 

Matériel

  • Arduino x1
  • Fils M/M x3
  • Carte de prototypage x1
  • Résistance 220 Ohm x1
  • Led RVB x1

 

Schéma de montage

Les broches de contrôle des couleurs (R,V,B) sont connectées à des sorties PWM de la carte Arduino.

Généralement, les valeurs de courant supporté par les LEDs ne sont pas disponibles. N’oubliez pas de mettre une résistance entre la cathode et la masse de l’Arduino pour protéger la LED.

 

Code de gestion d’une LED RVB

Dans cette exemple, nous passons d’une couleur à l’autre progressivement. Pour cela, nous faisons varier les valeurs R,G,B que nous envoyons aux broches correspondantes.  Il est plus pratique de créer une fonction qui affecte la valeur PWM à la bonne sortie pour chaque couleur.

// Pins
#define BLUE 3
#define GREEN 5
#define RED 6
#define delayTime 10 // fading time
int MAX_LUM = 255;
int redVal,greenVal,blueVal;
void setup()
{
 pinMode(RED, OUTPUT);
 pinMode(GREEN, OUTPUT);
 pinMode(BLUE, OUTPUT);
 digitalWrite(RED, HIGH);
 digitalWrite(GREEN, LOW);
 digitalWrite(BLUE, LOW);
}
void loop()
{    
 redVal = MAX_LUM; // choose a Val between 1 and 255 to change the color.
 greenVal = 0;
 blueVal = 0;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out red bring green full when i=255
 {
   redVal -= 1;
   greenVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
 
 redVal = 0;
 greenVal = MAX_LUM;
 blueVal = 0;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out green bring blue full when i=255
 {
   greenVal -= 1;
   blueVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
 
 redVal = 0;
 greenVal = 0;
 blueVal = MAX_LUM;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out blue bring red full when i=255
 {
   // The following code has been rearranged to match the other two similar sections
   blueVal -= 1;
   redVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
}
void lightRGB(int r, int g, int b){
 analogWrite(RED, r);
 analogWrite(GREEN, g);
 analogWrite(BLUE, b);
}

N.B.: Si vous utilisez d’autres sorties que les sorties PWMs (les sorties digitales), les couleurs de transitons n’apparaitrons pas et la LED sautera d’une couleur à une autre.

 

Application

Modifier la couleur de la LED en fonction de la température de la pièce

 

Source

Apprenez à programmer avec Arduino