ESP32 S3 - LED RGB

L'ESP32 S3 peut piloter une LED RGB pour produire n'importe quelle couleur en mélangeant la lumière rouge, verte et bleue via des signaux PWM — vous offrant plus de 16 millions de combinaisons de couleurs possibles à partir d'un seul composant. Ce tutoriel vous guide à travers le câblage, le codage et la compréhension des principes de mélange des couleurs afin que vous puissiez ajouter un retour visuel vif à vos projets ESP32 S3.

Ce que vous allez construire :

  1. Un circuit reliant une LED RGB (ou un module LED RGB) à l'ESP32 S3
  2. Un croquis Arduino qui alterne entre trois couleurs distinctes en utilisant le PWM
  3. Une fonction d'aide réutilisable setColor() pour un contrôle des couleurs propre et lisible
  4. Une base pour tout projet nécessitant une sortie visuelle en couleur complète sur l'ESP32 S3
ESP32 S3 - LED RGB

À propos de la LED RGB

Une LED RGB combine trois LED individuelles — rouge, verte et bleue — dans un seul boîtier, permettant de produire n'importe quelle couleur en ajustant indépendamment la luminosité de chaque élément. Comme les trois sources de lumière sont si proches les unes des autres, l'œil humain perçoit leur sortie mélangée comme une seule couleur unifiée.

Caractéristiques principales

Une LED RGB à cathode commune possède quatre broches : une masse partagée et une broche de contrôle par canal de couleur. Chaque canal se comporte comme une LED standard, fonctionnant à une tension directe d'environ 2–3 V avec un courant d'environ 20 mA, une résistance de limitation de courant est donc nécessaire pour chaque canal, sauf si vous utilisez un module LED RGB préassemblé qui inclut déjà des résistances. L'ESP32 S3 pilote chaque canal avec une valeur PWM entre 0 (éteint) et 255 (luminosité maximale), offrant 256 niveaux d'intensité par canal et plus de 16 millions de possibilités de couleurs combinées.

Brochage de la LED RGB

La LED RGB comprend quatre broches correspondant à chaque élément lumineux :

  1. Broche R (rouge) : Contrôle l'élément de couleur rouge
  2. Broche G (vert) : Contrôle l'élément de couleur vert
  3. Broche B (bleu) : Contrôle l'élément de couleur bleu
  4. Broche commune (Cathode−) : Connectez cette broche à GND (0V)
Brochage de la LED RGB

Pour connecter une LED RGB à l'ESP32 S3, vous devez ajouter des résistances de limitation de courant à chaque broche de couleur. Cela peut complexifier le câblage — heureusement, un module LED RGB est livré avec des résistances de limitation de courant préassemblées et constitue l'option recommandée pour les débutants.

Le module LED RGB comprend également quatre broches :

  • Broche commune (Cathode−) : Doit être connectée à GND (0V)
  • R (rouge) : Broche utilisée pour contrôler le rouge
  • G (vert) : Broche utilisée pour contrôler le vert
  • B (bleu) : Broche utilisée pour contrôler le bleu
Brochage du module LED RGB

※ Note:

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

Comment fonctionne la LED RGB

En termes de physique, chaque couleur est une combinaison de trois éléments primaires : Rouge (R), Vert (G) et Bleu (B). La valeur de chaque élément varie de 0 à 255, et leur combinaison crée 256 × 256 × 256 = plus de 16 millions de couleurs au total.

Lorsque l'ESP32 S3 génère des signaux PWM sur les broches R, G et B, la LED RGB affiche la couleur correspondant à ces valeurs de rapport cyclique. En changeant le rapport cyclique de chaque signal PWM (de 0 à 255), la LED RGB peut afficher n'importe quelle couleur. Les valeurs de couleur Rouge (R), Vert (G) et Bleu (B) correspondent respectivement au rapport cyclique PWM sur les broches R, G et B.

Schéma de câblage entre la LED RGB et l'ESP32 S3

Connectez le module LED RGB à l'ESP32 S3 en faisant passer trois fils des broches de couleur vers des broches de sortie numérique, puis connectez la broche de cathode commune directement à n'importe quelle broche GND de la carte. Si vous utilisez une LED RGB nue (sans le module), n'oubliez pas d'ajouter une résistance de limitation de courant de 220 ohms en série avec chaque broche de couleur.

Consignes de sécurité

Utilisez toujours des résistances de limitation de courant (220 ohms par canal) lors du câblage d'une LED RGB nue — les omettre risque d'endommager définitivement la LED ou de griller les broches GPIO de l'ESP32 S3. Utiliser un module LED RGB élimine ce risque car les résistances sont déjà intégrées.

  • Schéma de câblage entre l'ESP32 S3 et la LED RGB
Schéma de câblage de la LED RGB ESP32 S3

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

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

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche de la LED RGB Composant Broche ESP32 S3
R (rouge) Résistance 220Ω (ou intégrée au module) GPIO1
G (vert) Résistance 220Ω (ou intégrée au module) GPIO42
B (bleu) Résistance 220Ω (ou intégrée au module) GPIO40
Commune (Cathode−) Fil direct GND

Comment contrôler la LED RGB

Contrôler la LED RGB avec l'ESP32 S3 implique trois étapes : choisir une couleur cible, la convertir en valeurs R/V/B, et écrire ces valeurs avec analogWrite(). Les étapes suivantes parcourent le processus en utilisant la couleur #00979D comme exemple.

  • Trouvez le code de couleur. Astuces :
    • Vous pouvez récupérer le code de couleur que vous souhaitez depuis le sélecteur de couleur
    • Si vous voulez utiliser une couleur depuis une image, utilisez l'outil en ligne Colors From Image
  • Convertissez le code de couleur en valeurs R, G, B à l'aide de l'outil de w3schools. Dans ce cas : R = 0, G = 151, B = 157
Sélecteur de couleur pour LED RGB
  • Définissez les broches de l'ESP32 S3 connectées à R, G et B. Par exemple :
#define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin
  • Configurez ces broches de l'ESP32 S3 comme sorties :
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Contrôlez la LED pour qu'elle émette la couleur cible (#00979D → R = 0, G = 151, B = 157) :
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Code ESP32 S3

Étapes rapides

Le code suivant fait alterner la LED RGB entre trois couleurs en séquence. Avant de téléverser, assurez-vous que votre câblage correspond au schéma ci-dessus et que votre Arduino IDE est configuré pour la carte ESP32 S3.

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le circuit : Connectez la LED RGB (ou le module) à l'ESP32 S3 selon le schéma de câblage ci-dessus.
  3. Connectez la carte : Branchez l'ESP32 S3 à votre ordinateur à l'aide d'un câble USB Type-C.
  4. Ouvrez Arduino IDE : Lancez l'Arduino IDE sur votre ordinateur.
  5. Sélectionnez la carte : Choisissez ESP32 S3 et son port COM correspondant.
  6. Copiez le code : Copiez le code ci-dessous et collez-le dans Arduino IDE.

Le code suivant change la couleur de la LED parmi trois valeurs 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 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-led-rgb */ #define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // keep the color 1 second }
  1. Téléversez le code : Cliquez sur le bouton Upload dans Arduino IDE pour compiler et téléverser.
Comment téléverser le code ESP32 S3 avec Arduino IDE
  1. Observez les résultats : Regardez la LED RGB alterner entre trois couleurs différentes, chacune maintenue pendant une seconde.
  2. Astuce pro : Utilisez un sélecteur de couleur en ligne pour trouver le code hexadécimal de n'importe quelle couleur souhaitée, convertissez-le en valeurs R/V/B, et insérez ces nombres directement dans les appels analogWrite() pour afficher cette couleur exacte sur votre LED.

Explication du code ligne par ligne

Le code ESP32 S3 ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Lorsqu'on utilise de nombreuses couleurs, on peut raccourcir le code en créant une fonction :

Lorsque votre projet doit afficher de nombreuses couleurs différentes, répéter trois appels analogWrite() pour chaque couleur devient rapidement lourd à gérer. Le code suivant refactorise la logique de couleur dans une fonction réutilisable setColor(), rendant le croquis plus propre et plus facile à maintenir.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-led-rgb */ #define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // keep the color 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

Sortie du moniteur série

Le tutoriel sur la LED RGB ne produit pas de sortie sur le moniteur série par défaut, mais vous pouvez ajouter Serial.begin(9600) dans setup() et enregistrer chaque changement de couleur pour vérifier que votre code s'exécute comme prévu. Un exemple de sortie après l'ajout de la journalisation série ressemblerait à :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:00:01] Setting color: R=0, G=201, B=204 (#00C9CC) [2026-06-16 10:00:02] Setting color: R=247, G=120, B=138 (#F7788A) [2026-06-16 10:00:03] Setting color: R=52, G=168, B=83 (#34A853) [2026-06-16 10:00:04] Setting color: R=0, G=201, B=204 (#00C9CC)
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et idées de projets

Le contrôle de couleur de LED RGB est une brique de base puissante pour un large éventail de projets ESP32 S3 nécessitant une sortie visuelle expressive.

  1. Lampe d'ambiance : Créez un éclairage d'ambiance contrôlé par WiFi qui permet aux utilisateurs de sélectionner n'importe quelle couleur depuis une page web, en exploitant les capacités sans fil intégrées de l'ESP32 S3.
  2. Indicateur d'état : Affichez vert pour normal, jaune pour avertissement et rouge pour les états d'erreur dans un système de surveillance IoT connecté à l'ESP32 S3.
  3. Lumière de notification : Faites clignoter une couleur spécifique lorsque l'ESP32 S3 reçoit un message MQTT particulier, une alerte email ou un déclencheur webhook.
  4. Visualiseur de température : Associez les relevés de température du capteur à un dégradé de couleur — bleu pour froid, vert pour confortable, rouge pour chaud — en utilisant les entrées analogiques de l'ESP32 S3.
  5. Retour de manette de jeu : Utilisez des changements de couleur pour signaler des états de jeu, une détection de coup ou des tours de joueur dans un projet interactif alimenté par l'ESP32 S3.
  6. Minuterie de veilleuse : Passez par des couleurs chaudes en soirée et virez progressivement vers des tons plus froids la nuit selon un programme basé sur le temps piloté par l'horloge interne de l'ESP32 S3.

Vidéo tutoriel

Regardez ci-dessous la vidéo pas à pas de ce projet ESP32 S3.

Défiez-vous

Une fois que votre LED RGB alterne les couleurs de manière fiable sur l'ESP32 S3, ces exercices progressivement plus difficiles vous aideront à approfondir votre compréhension du PWM, de la théorie des couleurs et de la temporisation.

  1. Débutant : Changez les trois couleurs de la boucle pour des couleurs de votre choix en utilisant un sélecteur de couleur en ligne pour trouver les valeurs R/V/B.
  2. Débutant : Ajoutez une quatrième couleur et ajustez les délais afin que chaque couleur s'affiche pendant une durée différente.
  3. Intermédiaire : Créez un effet de fondu arc-en-ciel fluide qui parcourt en continu tout le spectre des couleurs en utilisant une boucle et setColor().
  4. Intermédiaire : Ajoutez un bouton-poussoir qui fait avancer l'ESP32 S3 vers la couleur suivante de la séquence à chaque pression.
  5. Avancé : Mettez en œuvre un fondu croisé fluide entre deux couleurs quelconques en interpolant les valeurs R, G et B pas à pas sans utiliser delay().
  6. Avancé : Connectez une photorésistance à l'ESP32 S3 et utilisez les relevés de lumière ambiante pour ajuster automatiquement la couleur ou la luminosité de la LED en temps réel.

Références du langage

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !