starter kit arduino

Le starter kit Arduino Officiel

Pour débutants & confirmés – Manuel en Français

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

Contrôler une led RGB avec l’Arduino

Mai 21, 2021 | Arduino | 0 commentaires

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.

Ce dont vous aurez besoin

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
led rgb arduino

Notez qu’il existe deux type de led RGB

  • Les led a anode commune
led anode commune
  • Les LED à cathode commune
led cathode commune

Code Arduino 1 – Led RGB et Arduino

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 – Led RGB et Arduino

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

led rgb arduino

Source: Lien | Lien

Elegoo starter kit R3

0 commentaires

Soumettre un commentaire

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