Electroduino

Electroduino logo

Tutoriel : Allumer une LED RGB avec la carte arduino

Introduction

Dans ce tutoriel, nous allons voir comment allumer une LED RGB avec la carte arduino.

Définition d'une LED RGB :

Une LED RGB est un composant émettant de la lumière qui permet de reproduire les 3 couleurs primaires qui sont : le rouge, le vert et le bleu. D'où son appellation RGB (Red, Green, Blue)

C'est l'équivalent d'une LED rouge, une LED verte, et une LED bleu reliées ensemble et commandées indépendamment.

La LED est composée de 4 broches.

Il existe deux types de LED RGB sur le marché.

  • Les LED à anode commune
  • Les LED à cathode commune

Schéma type de LED:

Anode commune LED anode commune
Cathode commune LED cathode commune

Matériels utilisés

Montage

J'ai choisi d'utiliser une LED RGB à anode commune. Il faut donc relier la pin "anode commune" de la LED sur le potentiel (voltage) le plus haut de la carte arduino c'est-à-dire la pin 5V.

Pins LED RGB: Câblage LED RGB anode commune

Ensuite, il faut relier les 3 cathodes de la LED sur 3 pins de la carte arduino. Par exemple : les pins 9 , 10 et 11.

Il ne faut surtout pas oublier de câbler les résistances sur les 3 broches des composantes couleurs de la LED sinon elle grillera. Des résistances de 220 ohms font très bien l'affaire.

Schéma de câblage :

Câblage LED RGB Fritzing

Principe de fonctionnement

Pour pouvoir allumer une composante couleur de la LED RGB, il faut mettre la pin de la carte arduino qui la commande à l'état LOW (0V), et inversement, pour éteindre une composante couleur, il faut mettre la pin arduino qui la commande à l'état HIGH (5V).

Pourquoi ?

Pour qu'un courant circule et donc allume l'une des trois couleurs de la LED, il faut qu'il y ait une différence de potentiel à ses bornes.

Exemple :

Si on veut allumer par exemple la composante rouge, il y a un potentiel de 5V sur l'anode de la LED, il faut donc mettre la cathode de la composante rouge à 0V.

Car 5V - 0V = 5V, il y a une différence de potentiel de 5V et donc le courant circule dans la composante rouge de la LED et l'allume.

Au contraire, si on veut éteindre par exemple la composante rouge de la LED, on a un potentiel de 5V sur l'anode, il faut donc mettre un potentiel de 5V sur la cathode la composante rouge pour qu'il n'y ait pas de différence de potentiel.

Car 5V - 5V = 0V , 0V = pas de différence de potentiel = pas de courant qui circule.

Programmation

Suite de couleurs :

Ce code allume chacune des couleurs les unes à la suite des autres.


/* 
Déclaration variable
*/
int ledrouge = 11; // composante rouge connectée sur la pin 11
int ledverte = 10; // composante verte connectée sur la pin 10
int ledbleu = 9; // composante bleu connectée sur la pin 9

/*
Fonction d'initialisation
*/
void setup() {

    pinMode(ledrouge, OUTPUT); // Configure la pin 11 en sortie
    pinMode(ledverte, OUTPUT); // Configure la pin 10 en sortie
    pinMode(ledbleu, OUTPUT); // Configure la broche 8 en sortie

    /*
    Eteint chaque composante couleur de la LED
    */
    digitalWrite(ledrouge, HIGH);
    digitalWrite(ledverte, HIGH);
    digitalWrite(ledbleu, HIGH);
}

/*
Fonction principale
*/
void loop() {

    digitalWrite(ledrouge, LOW); // Allume la composante rouge
    delay(2000);
    digitalWrite(ledrouge, HIGH); // Éteint la composante rouge

    digitalWrite(ledverte, LOW); // Allume la composante verte
    delay(2000);
    digitalWrite(ledverte, HIGH); // Éteint la composante verte

    digitalWrite(ledbleu, LOW); // Allume la composante bleu
    delay(2000);
    digitalWrite(ledbleu, HIGH); // Éteint la composante bleu

}

Suite de couleurs fondue :

Ce code fait la même chose que celui ci-dessus, mais les composantes couleurs s'allument avec un effet de fondu

Attention pour que celui-ci fonctionne, il faut les 3 broches de la LED qui pilotent les couleurs soient branchées sur les pins PWM de la carte arduino. Ces pins sont représentés par le symbole ~.



/* 
Déclaration variable
*/
int ledrouge = 11; // composante rouge connectée sur la pin 11
int ledverte = 10; // composante verte connectée sur la pin 10
int ledbleu = 9; // composante bleu connectée sur la pin 9


/*
Fonction d'initialisation
*/
void setup() {

    pinMode(ledrouge, OUTPUT); // Configure la pin 11 en sortie
    pinMode(ledverte, OUTPUT); // Configure la pin 10 en sortie
    pinMode(ledbleu, OUTPUT); // Configure la broche 8 en sortie

    /*
    Eteint chaque composante couleur de la LED
    */
    digitalWrite(ledrouge, HIGH);
    digitalWrite(ledverte, HIGH);
    digitalWrite(ledbleu, HIGH);
}

/*
Fonction principale
*/
void loop() {

    // Allume progressivement la composante rouge de la LED
    for (int i = 255; i > 0; i--){
        analogWrite(ledrouge, i);
        delay(5);
    }
    // Éteint progressivement la composante rouge
    for (int i = 0; i < 255; i++){
        analogWrite(ledrouge, i);
        delay(5);
    }
    // Allume progressivement la composante verte de la LED
    for (int i = 255; i > 0; i--){
        analogWrite(ledverte, i);
        delay(5);
    }
    // Éteint progressivement la composante verte
    for (int i = 0; i < 255; i++){
        analogWrite(ledverte, i);
        delay(5);
    }
    // Allume progressivement la composante bleu de la LED
    for (int i = 255; i > 0; i--){
        analogWrite(ledbleu, i);
        delay(5);
    }
    // Éteint progressivement la composante bleu
    for (int i = 0; i < 255; i++){
        analogWrite(ledbleu, i);
        delay(5);
    }  
}

Conclusion

Résultat en images :

Composante rouge LED RGB
Composante verte LED RGB
Composante bleu LED RGB

Le tutoriel est desormais terminé.