ESP32 S3 - Faire clignoter plusieurs LED

Ce tutoriel vous explique comment programmer l'ESP32 S3 pour faire clignoter plusieurs LED simultanément sans utiliser la fonction delay. En utilisant la bibliothèque ezLED et des tableaux de LED, vous pouvez gérer proprement plusieurs LED avec un minimum de code.

Ce que vous allez construire :

  1. Câbler plusieurs LED à la carte ESP32 S3
  2. Utiliser la bibliothèque ezLED pour faire clignoter chaque LED indépendamment
  3. Contrôler le timing du clignotement sans delays bloquants
  4. Simplifier davantage le code à l'aide d'un tableau d'objets LED

Matériel requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×LED Kit
1×LED (red)
1×LED Module
1×Alternativement: Button and LED Kit
1×220Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: Connecteur d'alimentation DC
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

À propos de la LED

La LED (diode électroluminescente) est l'un des composants de sortie les plus fondamentaux utilisés avec des microcontrôleurs comme l'ESP32 S3. Elle convertit le courant électrique en lumière visible et est couramment utilisée pour les indicateurs d'état, les signaux de débogage et le retour visuel dans les projets embarqués. Savoir contrôler plusieurs LED indépendamment est une compétence essentielle pour créer des applications ESP32 S3 plus complexes.

Caractéristiques principales

  • Tension directe : généralement 1,8V–3,3V selon la couleur
  • Résistance de limitation de courant : 220 ohms recommandés pour une logique 3,3V
  • Contrôle : broche de sortie numérique (HIGH = allumée, LOW = éteinte)

Nous avons un tutoriel dédié sur les LED avec des informations détaillées et des instructions pas à pas sur le brochage matériel, le principe de fonctionnement et les connexions de câblage à l'ESP32 S3. Apprenez-en plus via le lien suivant :

Schéma de câblage

Connectez chaque LED en série avec une résistance de 220 ohms entre une broche GPIO de l'ESP32 S3 et GND. Veillez à respecter la bonne polarité de la LED — la patte la plus longue (anode) se connecte vers la broche GPIO via la résistance, et la patte la plus courte (cathode) se connecte à GND.

Consignes de sécurité

Utilisez toujours une résistance de limitation de courant avec chaque LED pour éviter d'endommager à la fois la LED et la broche GPIO de l'ESP32 S3. Les broches GPIO de l'ESP32 S3 peuvent fournir jusqu'à environ 40 mA par broche, mais il est recommandé de maintenir le courant en dessous de 12 mA par LED pour un fonctionnement continu sûr.

Schéma de câblage de plusieurs LED sur ESP32 S3

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

Broche GPIO LED
GPIO 39 LED 1 (anode via résistance de 220Ω)
GPIO 40 LED 2 (anode via résistance de 220Ω)
GPIO 41 LED 3 (anode via résistance de 220Ω)
GND Toutes les cathodes des LED

Code ESP32 S3 - Faire clignoter plusieurs LED

Pour faire clignoter plusieurs LED indépendamment sur l'ESP32 S3, nous ne pouvons pas utiliser la fonction delay() car elle bloque l'exécution de tout autre code. Le code suivant utilise la fonction millis() avec la bibliothèque ezLED, qui gère en interne les horodatages afin que vous n'ayez pas à gérer cette complexité vous-même. Cette approche permet à chaque LED de clignoter à son propre rythme sans interférer avec les autres opérations.

/* * 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-blink-multiple-led */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-blink-multiple-led */ #include <ezLED.h> // ezLED library #define PIN_LED_1 39 // The ESP32-S3 pin GPIO39 connected to LED 1 #define PIN_LED_2 40 // The ESP32-S3 pin GPIO40 connected to LED 2 #define PIN_LED_3 41 // The ESP32-S3 pin GPIO41 connected to LED 3 ezLED led1(PIN_LED_1); // create ezLED object that attach to pin PIN_LED_1 ezLED led2(PIN_LED_2); // create ezLED object that attach to pin PIN_LED_2 ezLED led3(PIN_LED_3); // create ezLED object that attach to pin PIN_LED_3 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led2.blink(200, 800); // 200ms ON, 800ms OFF, blink immediately led3.blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { led1.loop(); // MUST call the led1.loop() function in loop() led2.loop(); // MUST call the led2.loop() function in loop() led3.loop(); // MUST call the led3.loop() function in loop() // DO SOMETHING HERE }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Effectuez le câblage comme indiqué sur le schéma ci-dessus.
  3. Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
  4. Ouvrez Arduino IDE sur votre PC.
  5. Sélectionnez la bonne carte ESP32 S3 (par exemple ESP32S3 Dev Module) et le bon port COM.
  6. Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  7. Recherchez "ezLED", puis trouvez la bibliothèque de LED par ArduinoGetStarted.
  8. Cliquez sur le bouton Install pour installer la bibliothèque ezLED.
  • Search for ezLED created by ArduinoGetStarted.com and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ezLED by ArduinoGetStarted.com
LED library supports turn on/off, toggle, fade in/out, blink, blink in period, blink in a number of time. It is easy to use to control multiple LEDs... It is designed for not only beginners but also experienced users More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Copiez le code ci-dessus et collez-le dans Arduino IDE.
  2. Compilez et téléversez le code sur la carte ESP32 S3 en cliquant sur le bouton Upload dans Arduino IDE.
Comment téléverser le code ESP32 S3 avec Arduino IDE
  1. Vérifiez l'état de chaque LED — elles devraient clignoter indépendamment selon leurs intervalles configurés.
  2. Astuce pro : Essayez d'ajuster les intervalles de clignotement de chaque LED pour créer des motifs lumineux ou des effets visuels intéressants.

Code ESP32 S3 - Faire clignoter plusieurs LED avec un tableau

Nous pouvons optimiser davantage le code ci-dessus en utilisant un tableau d'objets LED. Le code suivant montre comment un tableau permet de s'adapter facilement à n'importe quel nombre de LED avec un minimum de changements — il suffit de mettre à jour la liste des broches et la taille du tableau. Ce modèle est particulièrement utile lorsqu'on contrôle de nombreuses LED dans un projet ESP32 S3.

/* * 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-blink-multiple-led */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-blink-multiple-led */ #include <ezLED.h> // ezLED library #define NUM_LED 3 // three LEDs #define PIN_LED_1 39 // The ESP32-S3 pin GPIO39 connected to LED 1 #define PIN_LED_2 40 // The ESP32-S3 pin GPIO40 connected to LED 2 #define PIN_LED_3 41 // The ESP32-S3 pin GPIO41 connected to LED 3 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // create ezLED object that attach to pin PIN_LED_1 ezLED(PIN_LED_2), // create ezLED object that attach to pin PIN_LED_2 ezLED(PIN_LED_3) // create ezLED object that attach to pin PIN_LED_3 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[1].blink(200, 800); // 200ms ON, 800ms OFF, blink immediately ledArray[2].blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

Pour des motifs de clignotement plus flexibles et des options de contrôle supplémentaires, consultez les autres fonctions fournies par la bibliothèque ezLED.

Sortie du moniteur série

Ouvrez le moniteur série à 9600 bauds pour observer les messages d'exécution de l'ESP32 S3. Voici des exemples de lectures que vous pourriez voir pendant le fonctionnement :

∞
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-01-15 10:00:01] LED 1 ON [2026-01-15 10:00:01] LED 2 ON [2026-01-15 10:00:01] LED 3 ON [2026-01-15 10:00:02] LED 1 OFF [2026-01-15 10:00:02] LED 2 OFF [2026-01-15 10:00:03] LED 1 ON [2026-01-15 10:00:04] LED 3 OFF
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications

Faire clignoter plusieurs LED indépendamment sur l'ESP32 S3 est une technique fondamentale qui s'applique à de nombreux projets embarqués réels. Voici quelques cas d'usage pratiques :

  1. Indicateurs d'état : Utilisez plusieurs LED pour afficher simultanément différents états du système, comme l'alimentation, la connectivité et les conditions d'erreur.
  2. Simulation de feu de circulation : Mettez en œuvre un contrôleur simple de feu de circulation avec des LED rouge, jaune et verte cyclant à intervalles définis.
  3. Système de notification : Faites clignoter différentes LED pour signaler des alertes entrantes, des messages ou des événements de capteur sans bloquer le reste de la logique du programme.
  4. Aide au débogage : Assignez une LED par sous-système pour surveiller visuellement quelles parties de votre firmware ESP32 S3 sont actives à un moment donné.
  5. Éclairage décoratif : Créez des motifs de LED animés pour des affichages, des costumes ou des installations artistiques en utilisant des timings de clignotement indépendants.

Vidéo

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

Défis

Vous entraîner avec des variantes de ce projet vous aidera à approfondir votre compréhension du code non bloquant et du contrôle des LED sur l'ESP32 S3. Essayez les exercices suivants pour développer vos compétences :

  1. Débutant : Ajoutez une quatrième LED sur une nouvelle broche GPIO et configurez-la pour clignoter à un intervalle différent des trois autres.
  2. Intermédiaire : Modifiez le code basé sur le tableau pour lire les intervalles de clignotement depuis un tableau de valeurs, afin de pouvoir changer tous les timings de LED à un seul endroit sans toucher aux objets individuels.
  3. Avancé : Utilisez les broches tactiles intégrées de l'ESP32 S3 ou un bouton pour activer/désactiver indépendamment l'état de clignotement de chaque LED à l'exécution, en combinant la gestion d'entrée avec la sortie multi-LED.

※ 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 !