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.
Ce que vous allez construire :
- Un balayage séquentiel de pixels verts sur tout le bandeau avec une pause entre chaque LED.
- Une extinction complète du bandeau (toutes les LED éteintes) durant deux secondes.
- Un flash rouge simultané de toutes les LED maintenu pendant une seconde.
- Une animation en boucle continue combinant les trois effets.
Matériel Requis
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) |
À 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 :
- Broche GND : doit être connectée à GND (0V)
- Broche VCC : doit être connectée au 5V d'une alimentation externe
- Broche Din : reçoit le signal de contrôle et doit être connectée à une broche GPIO de l'ESP32 S3
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Ω) |
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
- Initialisez le bandeau NeoPixel dans setup()
- Définissez la couleur de chaque LED individuelle (appelée un pixel)
- Définissez la luminosité de tout le bandeau
※ 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.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez les composants comme montré dans le schéma de câblage ci-dessus.
- Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 S3 (par ex. ESP32S3 Dev Module) et le bon port COM.
- Cliquez sur l'icône Libraries dans la barre latérale gauche d'Arduino IDE.
- Recherchez "Adafruit NeoPixel", puis trouvez la bibliothèque NeoPixel d'Adafruit.
- Cliquez sur le bouton Install pour installer la bibliothèque NeoPixel.
- Search for Adafruit NeoPixel created by Adafruit and click the Install button.
- Copiez le code ci-dessus et ouvrez-le avec Arduino IDE.
- Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code sur l'ESP32 S3.
- Observez le bandeau de LED passer à travers le balayage vert, l'extinction, et le flash rouge.
- 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 :
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.
- É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.
- 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.
- Éclairage de costume portable : Intégrez un court bandeau NeoPixel dans des vêtements ou des accessoires pour des effets visuels accrocheurs.
- Installation artistique interactive : Pilotez des motifs de couleurs génératifs qui répondent au son, au mouvement, ou au toucher.
- 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.
- Débutant : Modifiez le code pour balayer des pixels bleus au lieu de verts, puis changez la couleur "tout allumé" de rouge à blanc.
- Débutant : Ajoutez un balayage arc-en-ciel qui fait passer chaque pixel par rouge → orange → jaune → vert → bleu → violet en séquence.
- 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.
- 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.
- 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.