ESP32 S3 - Ruban de LED WS2812B
L'ESP32 S3 est un microcontrôleur puissant qui rend le contrôle des rubans de LED RGB WS2812B simple et efficace. Avec une seule broche GPIO, vous pouvez contrôler indépendamment la couleur et la luminosité de chaque LED du ruban, permettant un large éventail d'effets d'éclairage dynamiques.

Ce que vous allez construire :
- Allumer les LED une par une en vert avec un délai entre chaque pixel
- Éteindre toutes les LED simultanément pendant deux secondes
- Allumer toutes les LED en rouge en même temps pendant deux secondes
- Répéter la séquence d'éclairage dans une boucle infinie
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 ruban de LED RGB WS2812B
Le WS2812B est un ruban de LED RGB adressables individuellement qui intègre à la fois la LED et le circuit de contrôle dans chaque pixel, vous permettant de contrôler chaque LED indépendamment à l'aide d'une seule ligne de données. Chaque pixel contient des sous-LED rouge, verte et bleue qui peuvent chacune être réglées sur 256 niveaux de luminosité, vous offrant plus de 16 millions de couleurs possibles par pixel. Le ruban fonctionne en 5V et utilise un protocole à un seul fil qui le rend compatible avec les broches GPIO de l'ESP32 S3.
Spécifications clés
Le ruban de LED RGB WS2812B possède 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
※ Note:
L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le ruban de LED.
Schéma de câblage
Connectez le ruban de LED WS2812B à l'ESP32 S3 en fournissant une alimentation 5V depuis un adaptateur externe aux broches VCC et GND du ruban, et en reliant la ligne de données Din via une résistance de 470Ω à une broche GPIO de l'ESP32 S3. Placez un condensateur de 1000uF sur les lignes d'alimentation près du ruban pour protéger contre les pics de tension lors de la première mise sous tension du circuit.
Notes de sécurité
Utilisez toujours une alimentation externe 5V pour le ruban de LED plutôt que de tirer l'alimentation des broches 3,3V ou USB de l'ESP32 S3, en particulier lors du pilotage de plus de quelques LED. La résistance série de 470Ω sur la ligne de données aide à protéger contre les phénomènes de réflexion de signal qui peuvent corrompre la communication. Le condensateur de 1000uF placé entre VCC et GND empêche le courant d'appel d'endommager la première LED du ruban à la mise sous tension.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche du composant | Se connecte à |
|:---|:---|
| WS2812B GND | GND (alimentation externe 5V) |
| WS2812B VCC | 5V (alimentation externe) |
| WS2812B Din | ESP32 S3 GPIO4 (via résistance 470Ω) |
| Condensateur + | Rail 5V |
| Condensateur - | Rail GND |
Comment programmer pour le ruban de LED RGB WS2812B
Deux bibliothèques populaires peuvent être utilisées pour piloter des rubans de LED WS2812B avec l'ESP32 S3 : la bibliothèque Adafruit NeoPixel et la bibliothèque FastLED. Ce tutoriel utilise la bibliothèque Adafruit NeoPixel car elle fournit une API propre et simple, facile à apprendre. Les exemples de code suivants montrent les fonctions clés dont vous avez besoin pour démarrer.
Déclarez un objet WS2812B en spécifiant le nombre de pixels, la broche de données, et le type de pixel :
Initialisez l'objet du ruban WS2812B dans setup() :
Définissez la couleur de chaque LED individuelle (appelée pixel) à l'aide de valeurs RGB de 0 à 255 :
Définissez la luminosité de toutes les LED du ruban à la fois :
※ Note:
- WS2812B.setBrightness() s'applique à tous les pixels du ruban de LED. Pour définir la luminosité de chaque pixel individuel, redimensionnez plutôt les valeurs de couleur.
- Les valeurs définies par WS2812B.setBrightness() et WS2812B.setPixelColor() ne prennent effet que lorsque WS2812B.show() est appelé.
Code ESP32 S3
Le code suivant démontre une séquence complète de contrôle du ruban de LED WS2812B à l'aide de la bibliothèque Adafruit NeoPixel. Il fait le tour en allumant les pixels en vert un par un, puis les éteint tous, puis les allume tous en rouge simultanément, en répétant le cycle en continu. Téléversez ce programme vers votre ESP32 S3 après avoir tout câblé comme indiqué dans le schéma ci-dessus.
Étapes rapides
- Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Cliquez sur l'icône Libraries dans la barre de gauche de l'Arduino IDE.
- Recherchez "Adafruit NeoPixel", puis trouvez la bibliothèque NeoPixel par 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 l'Arduino IDE.
- Sélectionnez votre carte ESP32 S3 et le bon port COM dans le menu Tools.
- Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code vers votre ESP32 S3.
- Observez le ruban de LED parcourir l'effet vert un par un, la pause tout éteint, et l'effet tout rouge.
- Astuce pro : Essayez d'ajuster NUM_PIXELS pour correspondre à la longueur réelle de votre ruban, et expérimentez avec différentes valeurs de couleur dans WS2812B.Color(R, G, B) pour créer vos propres motifs d'éclairage personnalisés.
※ Note:
Pour tout effet de LED compliqué, nous proposons le service de programmation payant
Moniteur série
Ouvrez le moniteur série à 9600 bauds pour observer l'ESP32 S3 parcourir ses états de contrôle du ruban de LED. Ce qui suit montre une sortie typique pendant un fonctionnement normal :
Applications
Les rubans de LED WS2812B contrôlés par l'ESP32 S3 sont largement utilisés dans des projets nécessitant un éclairage dynamique et programmable à faible coût et avec un câblage minimal.
- Éclairage d'ambiance : Créez un éclairage de pièce réactif qui change de couleur selon l'heure de la journée, la musique, ou les données de capteur.
- Indicateurs d'état : Utilisez différentes couleurs et motifs pour représenter visuellement des états du système tels que la connectivité Wi-Fi, les alertes de capteur, ou la progression d'un processus.
- Affichages décoratifs : Construisez des éclairages de fêtes, des effets d'éclairage sous véhicule, ou des enseignes animées avec des séquences de couleurs personnalisées.
- Périphériques de jeu : Ajoutez un éclairage RGB réactif à des claviers, manettes, ou configurations de bureau personnalisés qui réagissent aux événements en jeu.
- Projets portables : Intégrez des rubans de LED dans des costumes, sacs, ou vêtements pour des effets électroniques portables accrocheurs.
Vidéo
Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.
Défis
Le ruban de LED WS2812B ouvre la porte à des défis de programmation créatifs qui aiguiseront vos compétences ESP32 S3 et produiront des résultats visuellement impressionnants.
- Débutant : Modifiez le code pour parcourir des états tout allumé en rouge, vert, et bleu en séquence, en maintenant chaque couleur pendant une seconde avant de passer à la suivante.
- Intermédiaire : Implémentez un effet arc-en-ciel qui décale en continu la teinte de chaque pixel le long du ruban afin que toutes les couleurs du spectre apparaissent simultanément et défilent en douceur au fil du temps.
- Avancé : Utilisez la capacité Wi-Fi de l'ESP32 S3 pour construire une interface web qui permet aux utilisateurs de choisir n'importe quelle couleur depuis un sélecteur de couleur et de régler la luminosité en temps réel, en envoyant les mises à jour au ruban de LED sans redémarrer la carte.