ESP32 S3 - Bandeau de LED NeoPixel

Le bandeau NeoPixel est une chaîne de LED RGB individuellement adressables qui vous permet de contrôler la couleur et la luminosité de chaque LED indépendamment. Dans ce guide, vous apprendrez à utiliser un ESP32 S3 pour contrôler un bandeau de LED RGB NeoPixel — et fait remarquable, vous n'avez besoin que d'une seule broche GPIO pour commander toutes les LED du bandeau entier.

ESP32 S3 - NeoPixel LED Strip

Ce que vous allez construire :

  1. Un balayage séquentiel de pixels verts sur tout le bandeau avec une pause entre chaque LED.
  2. Une extinction complète du bandeau (toutes les LED éteintes) durant deux secondes.
  3. Un flash rouge simultané de toutes les LED maintenu pendant une seconde.
  4. Une animation en boucle continue combinant les trois effets.

À propos du bandeau de LED RGB NeoPixel

Le bandeau de LED RGB NeoPixel (également connu sous le nom de WS2812B) contient un circuit pilote intégré à l'intérieur de chaque LED qui permet un protocole de communication à un seul fil, rendant facile l'enchaînement de dizaines voire de centaines de LED en utilisant une seule ligne de données. Chaque LED peut afficher n'importe laquelle des plus de 16 millions de couleurs en mélangeant les canaux rouge, vert et bleu de 0 à 255, et le bandeau entier peut être mis à jour simultanément avec un seul appel depuis votre microcontrôleur.

Spécifications clés

Brochage

Le bandeau de LED RGB NeoPixel a trois broches :

  1. Broche GND : doit être connectée à GND (0V)
  2. Broche VCC : doit être connectée au 5V d'une alimentation externe
  3. Broche Din : reçoit le signal de contrôle et doit être connectée à une broche GPIO de l'ESP32 S3
NeoPixel Pinout

Schéma de câblage

Connectez le bandeau NeoPixel à l'ESP32 S3 en câblant la ligne de données Din via une résistance série de 470Ω vers une broche GPIO, et alimentez VCC et GND depuis un adaptateur d'alimentation externe 5V dédié — placez le condensateur de 1000uF entre les rails VCC et GND près du bandeau pour supprimer les pics de tension.

Notes de sécurité

Alimentez toujours le bandeau NeoPixel depuis une source externe 5V plutôt que depuis le rail 3,3V embarqué de l'ESP32 S3 ou le rail 5V USB, car un bandeau complet tirant un courant de crête peut dépasser ce que le régulateur de la carte peut fournir en toute sécurité. La résistance série de 470Ω sur la ligne de données protège contre les réflexions et les oscillations du signal, tandis que le condensateur de 1000uF absorbe le pic de courant d'appel lorsque le bandeau s'allume pour la première fois.

| Bandeau NeoPixel | ESP32 S3 / Alimentation externe |

|:---|:---|

| GND | GND (partagée avec le GND de l'ESP32 S3) |

| VCC | Adaptateur d'alimentation externe 5V |

| Din | GPIO16 (via une résistance de 470Ω) |

ESP32 S3 NeoPixel RGB LED strip Wiring Diagram

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

Comment programmer pour le bandeau de LED RGB NeoPixel

La bibliothèque Adafruit NeoPixel fournit une API simple pour contrôler les bandeaux WS2812B sur l'ESP32 S3. Les trois opérations principales dont vous avez besoin sont la création de l'objet NeoPixel, son initialisation, puis la définition des couleurs et de la luminosité des pixels avant d'appeler show() pour envoyer les mises à jour au matériel.

  • Déclarez un objet NeoPixel
#define PIN_NEO_PIXEL 16 // The ESP32 S3 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Initialisez le bandeau NeoPixel dans setup()
NeoPixel.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  • Définissez la couleur de chaque LED individuelle (appelée un pixel)
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Définissez la luminosité de tout le bandeau
NeoPixel.setBrightness(200); // a value from 0 to 255

※ Note:

  • NeoPixel.setBrightness() applique une échelle de luminosité globale à tous les pixels du bandeau. Pour définir la luminosité de chaque pixel individuellement, mettez à l'échelle directement les valeurs de couleur.
  • Les valeurs définies par NeoPixel.setBrightness() et NeoPixel.setPixelColor() ne prennent effet que lorsque NeoPixel.show() est appelé.

Code ESP32 S3

Le code suivant démontre les trois effets d'animation en boucle continue sur l'ESP32 S3. Il allume séquentiellement chaque LED en vert avec une courte pause, puis éteint toutes les LED pendant deux secondes, puis allume tout le bandeau en rouge pendant une seconde — se répétant indéfiniment. Téléversez le sketch, puis observez le bandeau passer automatiquement à travers chaque effet.

/* * 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-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 S3 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED) } void loop() { NeoPixel.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called // turn pixels to green one-by-one with delay between each pixel for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called NeoPixel.show(); // update to the NeoPixel Led Strip delay(500); // 500ms pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(2000); // 2 seconds off time // turn on all pixels to red at the same time for two seconds for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second off time }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants comme montré dans le schéma de câblage 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 ex. ESP32S3 Dev Module) et le bon port COM.
  6. Cliquez sur l'icône Libraries dans la barre latérale gauche d'Arduino IDE.
  7. Recherchez "Adafruit NeoPixel", puis trouvez la bibliothèque NeoPixel d'Adafruit.
  8. Cliquez sur le bouton Install pour installer la bibliothèque NeoPixel.
  • Search for Adafruit NeoPixel created by Adafruit 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
Adafruit NeoPixel by Adafruit
Arduino library for controlling single-wire-based LED pixels and strip. More info
1.12.0
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 ouvrez-le avec Arduino IDE.
  2. Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code sur l'ESP32 S3.
  3. Observez le bandeau de LED passer à travers le balayage vert, l'extinction, et le flash rouge.
  4. Astuce : Augmentez NUM_PIXELS pour correspondre exactement au nombre de LED de votre bandeau, et expérimentez avec des valeurs de NeoPixel.setBrightness() (50–150) pour un usage intérieur, afin de réduire la consommation d'énergie et la chaleur.

Sortie du Serial Monitor

Ouvrez le Serial Monitor à 9600 bauds pour observer les messages de statut affichés par l'ESP32 S3 pendant la boucle d'animation. Les relevés suivants montrent une session typique avec horodatages :

∞
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:23:01] Starting NeoPixel animation loop... [2026-01-15 10:23:01] Sweeping green pixels across strip (30 LEDs) [2026-01-15 10:23:04] All pixels off — waiting 2 seconds [2026-01-15 10:23:06] All pixels set to red — holding 1 second
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications

Les bandeaux de LED NeoPixel contrôlés par l'ESP32 S3 peuvent être utilisés dans un large éventail de projets créatifs et pratiques, de l'éclairage d'ambiance aux affichages interactifs.

  1. Éclairage d'ambiance de pièce : Créez un éclairage d'ambiance dynamique qui change de couleur selon l'heure de la journée ou une entrée de capteur.
  2. Indicateur de notification : Faites clignoter des couleurs spécifiques pour signaler des événements tels que de nouveaux messages, des alertes, ou un statut système.
  3. Éclairage de costume portable : Intégrez un court bandeau NeoPixel dans des vêtements ou des accessoires pour des effets visuels accrocheurs.
  4. Installation artistique interactive : Pilotez des motifs de couleurs génératifs qui répondent au son, au mouvement, ou au toucher.
  5. Accent d'affichage commercial : Utilisez des séquences lumineuses animées pour attirer l'attention sur des produits ou des enseignes.

Vidéo

Regardez ci-dessous le tutoriel vidéo étape par étape de ce projet ESP32 S3.

Défis

Ces défis sont conçus pour aller au-delà des bases de votre compréhension du contrôle NeoPixel sur l'ESP32 S3.

  1. Débutant : Modifiez le code pour balayer des pixels bleus au lieu de verts, puis changez la couleur "tout allumé" de rouge à blanc.
  2. Débutant : Ajoutez un balayage arc-en-ciel qui fait passer chaque pixel par rouge → orange → jaune → vert → bleu → violet en séquence.
  3. Intermédiaire : Utilisez un potentiomètre connecté à une broche CAN de l'ESP32 S3 pour contrôler dynamiquement la luminosité du bandeau en temps réel.
  4. Intermédiaire : Implémentez une animation de type "theater chase" où une LED sur trois s'allume et le groupe allumé avance autour du bandeau.
  5. Avancé : Construisez un visualiseur réactif au son en lisant la sortie analogique d'un microphone et en associant l'amplitude audio au nombre de pixels allumés et à leur intensité de couleur.

Commentaires

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