ESP32 - LED RVB

Ce tutoriel vous explique comment contrôler une LED RGB pour émettre n'importe quelle couleur en utilisant un ESP32.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×RGB LED
1×(Alternative) RGB LED Module
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos des LED RGB

La LED RVB peut émettre n'importe quelle couleur en mélangeant les 3 couleurs de base : rouge, vert et bleu. Une seule LED RVB est composée de 3 LED : rouge, verte et bleue. Ces trois LED sont regroupées dans un seul boîtier, de sorte qu'elle semble être une seule LED.

Brochage de la LED RVB

La LED RVB inclut quatre broches :

  • Broche R (rouge) : sert à contrôler l'élément de couleur rouge
  • Broche G (verte) : sert à contrôler l'élément de couleur verte
  • Broche B (bleue) : sert à contrôler l'élément de couleur bleue
  • Broche commune (Cathode-) : connectez cette broche à GND (0V)
Schéma de brochage de LED RVB

Pour connecter une LED RGB à l'ESP32, nous devons ajouter des résistances limitatrices de courant. Cela peut compliquer le câblage. Heureusement, nous pouvons utiliser un module LED RGB qui est équipé de résistances limitatrices de courant intégrées.

Le module LED RGB comprend également quatre broches :

  • Broche commune (cathode -) : doit être connectée à GND (0V)
  • R (rouge) : la broche est utilisée pour contrôler le rouge
  • G (vert) : la broche est utilisée pour contrôler le vert
  • B (bleu) : la broche est utilisée pour contrôler le bleu
Schéma de brochage du module LED RVB

※ NOTE THAT:

Selon la broche commune, il existe deux types de LED : anode commune et cathode commune. Ce tutoriel utilise une LED à cathode commune.

Fonctionnement des LED RGB

En termes de physique, une couleur est une combinaison de trois éléments de couleur : Rouge (R), Vert (G) et Bleu (B). La plage de valeurs de chaque élément de couleur va de 0 à 255. La combinaison des valeurs des trois éléments de couleur crée un total de 256 x 256 x 256 couleurs.

Si nous générons des signaux PWM vers les broches R, G, B, la LED RVB affiche une couleur correspondant aux valeurs de rapport cyclique PWM. En changeant le rapport cyclique des signaux PWM (de 0 à 255), la LED RVB peut afficher n'importe quelle couleur. Les valeurs de couleur de Rouge (R), Vert (G) et Bleu (B) correspondent au rapport cyclique PWM sur les broches R, G et B, respectivement.

Schéma de câblage entre LED RVB et ESP32

  • Schéma de câblage entre ESP32 et LED RGB
Schéma de câblage de la LED RVB ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

  • Schéma de câblage entre l'ESP32 et le module LED RVB
Schéma de câblage du module LED RVB ESP32

This image is created using Fritzing. Click to enlarge image

Comment contrôler une LED RVB

Supposons que nous voulions afficher la couleur #00979D sur une LED RGB, nous pouvons procéder comme suit :

  • Trouvez le code couleur. Conseils :
  • Convertissez le code couleur en valeurs R, G, B en utilisant l'outil de w3school. Notez ces valeurs. dans ce cas : R = 0, G = 151, B = 157.
Sélecteur de couleur LED RVB
  • Définissez les broches ESP32 qui se connectent aux broches R, G et B. Par exemple :
#define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21
  • Configurez ces broches ESP32 en mode sortie.
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Contrôlez la LED pour émettre cette couleur (#00979D → R = 0, G = 151, B = 157)
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

ESP32 - Exemple de Code pour LED RVB

Le code ci-dessous change la couleur de la LED parmi les couleurs suivantes en séquence :

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // code couleur #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // maintenir la couleur 1 seconde // code couleur #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // maintenir la couleur 1 seconde // code couleur #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // maintenir la couleur 1 seconde }

Lorsque nous utilisons de nombreuses couleurs, nous pourrions raccourcir le code en créant une fonction :

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // code couleur #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // maintenir la couleur 1 seconde // code couleur #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // maintenir la couleur 1 seconde // code couleur #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // maintenir la couleur 1 seconde } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!