led_rgb

Pour la plupart d’entre-nous, l’entrée dans le monde d’Arduino se fais a l’aide d’une LED et du fameux Sketch « BLINK ».
Et il y a ensuite quantité de choses à faire avec des LEDs. Cependant une fois que l’ont a fait le tour on peut se tourner vers les LEDs RGB.

Une LED RGB, contiens les trois couleurs de bases (rouge, vert, bleu) et ce dans une même LED. Ces trois couleurs étant mélangeables, on peut alors faire varier la couleur de la LED comme bon nous semble.

Il semblerai que lorsque j’ai fais le choix de mes Leds, je n’ai pas fais le plus judicieux et pour cause, j’ai pris des LEDS à cathode communes « Water Clear », donc totalement transparente. Ce qui rend le mélange visible. Ce n’est pas génant en soi mais pour un meilleur résultat, je vous conseillerai alors de prendre des LEDS RGB à diffusion. Ce qui rendra le mélange plus homogène.

Branchement

Votre LED sous les yeux et dans ce sens, les broches se lisent dans l’ordre: Rouge, Masse, vert, bleu.

Pour pouvoir contrôler au maximum la teinte et la luminosité, le branchement se fais sur des entrée/sorties PWM. Branchée comme telle (pour le code qui suivra).

  • LED -> ARDUINO
  • ROUGE -> Pin 6 de l’arduino
  • Masse -> GND de l’arduino
  • Vert -> Pin 3 de l’arduino
  • Bleu -> Pin 5 de l’arduino

pinout_rgb

Code

Pour ce qui est du code, j’ai relevé deux sources provenant d’Instructable (Liens en bas de page).

              
            #define GREEN 3
#define BLUE 5
#define RED 6
#define delayTime 20

void setup() {

  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  pinMode(RED, OUTPUT);
  digitalWrite(GREEN, HIGH);
  digitalWrite(BLUE, HIGH);
  digitalWrite(RED, HIGH);
}

int redVal;
int blueVal;
int greenVal;
 
void loop() {
 
  int redVal = 255;
  int blueVal = 0;
  int greenVal = 0;
  for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    analogWrite( GREEN, 255 - greenVal );
    analogWrite( RED, 255 - redVal );

    delay( delayTime );
  }
 
  redVal = 0;
  blueVal = 0;
  greenVal = 255;
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    analogWrite( BLUE, 255 - blueVal );
    analogWrite( GREEN, 255 - greenVal );

    delay( delayTime );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
    analogWrite( RED, 255 - redVal );
    analogWrite( BLUE, 255 - blueVal );

    delay( delayTime );
  }
}

            

 

Second code

  
int ledcolor = 0;
int a = 1000; //this sets how long the stays one color for
int red = 6; //this sets the red led pin
int green = 3; //this sets the green led pin
int blue = 5; //this sets the blue led pin

void setup() { //this sets the output pins

pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}

void loop() {
int ledcolor = random(7); //this randomly selects a number between 0 and 6

switch (ledcolor) {
case 0: //if ledcolor equals 0 then the led will turn red
analogWrite(red, 204);
delay(a);
analogWrite(red, 0);
break;
case 1: //if ledcolor equals 1 then the led will turn green
digitalWrite(green, HIGH);
delay(a);
digitalWrite(green, LOW);
break;
case 2: //if ledcolor equals 2 then the led will turn blue
digitalWrite(blue, HIGH);
delay(a);
digitalWrite(blue, LOW);
break;
case 3: //if ledcolor equals 3 then the led will turn yellow
analogWrite(red, 160);
digitalWrite(green, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(green, LOW);
break;
case 4: //if ledcolor equals 4 then the led will turn cyan
analogWrite(red, 168);
digitalWrite(blue, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(blue, LOW);
break;
case 5: //if ledcolor equals 5 then the led will turn magenta
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
delay(a);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
break;
case 6: //if ledcolor equals 6 then the led will turn white
analogWrite(red, 100);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
break;
}

} 

 

Branchez, téléversez et admirez!

Il ne me reste plus qu’a trouver une application à faire et a adapter/coder ma propre application.

Source: Lien | Lien