Le starter kit Arduino Officiel

Pour débutant – Manuel en Français

Apprenez l’Arduino et l’électronique de façon pratique

Avec Amazon prime vous bénéficiez de la livraison gratuite en 1 jours ouvré. 30 jours d’essais gratuits dans obligation d’abonnement!

Contrôler une led RGB avec l’Arduino

Comment utiliser une led RGB avec l’Arduino

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

Une LED RGB, contiens les trois couleurs primaires de base (rouge, vert, bleu) et ce dans une même LED. Ces trois couleurs se mélanges lorsque l’on applique une tension a chacune de ses broches. On peut alors faire varier la couleur de la LED comme bon nous semble.

Contrairement a une LED classique, la LED RGB va se contrôler comme trois LED distinctes. C’est pour cela qu’elle a quatre broches. (Rouge, vert, bleu et sa masse ou GND). En bref en utilisant ce type de LED, on économise des broches (deux) GND de notre Arduino :).

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.

Connecter une led RGB à l’Arduino

Vous avez votre LED sous les yeux et dans ce sens, les broches se lisent dans l’ordre: Rouge, Masse, vert, bleu. Généralement la broche la plus longue sera la masse mais ce n’est pas une fatalité. Il existe aussi des LEDS où toutes les broches ont la même taille.

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).

Veillez à ajouter une résistance d’environ 220Ohms entre les broches RVB de la led et l’Arduino

  • 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

 

Notez qu’il existe deux type de led RGB

 

  • Les led a anode commune

  • Les LED à cathode commune

Code Arduino 1

Pour ce qui est du code, j’ai relevé deux sources provenant d’Instructable (Liens sources 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 );
  }
}

Code Arduino 2


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.

Pinout d’une LED RGB

A cathodes communes

 

Source: Lien | Lien

Découvrez aussi le kit Arduino Complet d'Elegoo!

Kit Arduino Elegoo Ultime

Disponible ici

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Inscrivez-vous a la newsletter

Inscrivez-vous a la newsletter

Soyez les premiers avertis de nouveaux tutos, mises à jours, bon plans,...

Merci et à bientôt!

Pin It on Pinterest

Share This