Tutoriel ESP32 12/55 - Projet WS2812 RGB Strip 4 avec le kit d'apprentissage IoT d'SunFounder pour ESP32
Dans ce tutoriel, nous allons explorer comment contrôler une bande LED WS2812 à l'aide du microcontrôleur ESP32. Ce projet vous permet de créer une variété de couleurs et de contrôler chaque LED individuellement, offrant un moyen amusant et visuellement attrayant d'apprendre la programmation et l'électronique. À la fin de ce tutoriel, vous disposerez d'une configuration entièrement fonctionnelle capable de changer de couleurs et de motifs de manière dynamique.
En utilisant le microcontrôleur ESP32 de SunFounder, qui dispose de fonctionnalités Wi-Fi et Bluetooth intégrées, nous pouvons facilement connecter et contrôler la bande LED RGB WS2812. La flexibilité de cette bande LED permet des applications créatives, que ce soit pour l'éclairage décoratif ou les projets éducatifs. Pour mieux comprendre les étapes impliquées, vous pouvez vous référer à la vidéo à (dans la vidéo à 00:00).
Matériel Expliqué
Les principaux composants de ce projet incluent le microcontrôleur ESP32 et la bande LED WS2812. L'ESP32 est un microcontrôleur puissant capable d'effectuer des tâches similaires à celles d'un Arduino, mais avec des options de connectivité supplémentaires. Il dispose d'un ensemble riche de fonctionnalités qui lui permettent de se connecter au cloud, offrant un contrôle à distance et une journalisation des données.
La bande LED WS2812 est composée de LEDs RGB individuellement adressables, ce qui signifie que chaque LED peut être contrôlée pour afficher différentes couleurs. La bande fonctionne sur un protocole à fil unique, permettant de chaîner plusieurs LEDs sans perdre la qualité du signal. Chaque LED contient un driver intégré qui prend le signal d'entrée et l'amplifie pour la prochaine LED dans la chaîne.
Détails de la fiche technique
| Fabricant | Worldsemi |
|---|---|
| Numéro de pièce | WS2812 |
| Tension logique/IO | 3,5-5,3 V |
| Tension d'alimentation | 5 V |
| Courant de sortie (par canal) | 20 mA max |
| Courant de pointe (par canal) | 60 mA max |
| Directives sur la fréquence PWM | 400 Hz |
| Seuils logiques d'entrée | 0,3 x VDDà 0,7 x VDD |
| Chute de tension / RDS(on)/ saturation | 0,5 V max |
| Limites thermiques | -25 à 80 °C |
| Paquet | 5050 |
| Remarques / variantes | Peut être enchaîné pour des bandes plus longues |
- Assurez une alimentation électrique adéquate (5 V) pour éviter d'endommager les LED.
- Utilisez un condensateur (100 µF) aux bornes de l'alimentation pour lisser les pics de tension.
- Gardez les câbles de données courts pour réduire la dégradation du signal.
- Soyez prudent avec la température des LED ; assurez-vous d'une bonne dissipation de la chaleur.
- Observez la polarité correcte lors de la connexion de l'alimentation et de la terre.
- Utilisez une résistance de tirage sur la ligne de données si vous utilisez de longues bandes.
Instructions de câblage

Pour connecter la bande LED WS2812 à l'ESP32, commencez par brancher l'alimentation. Le fil +5V de la bande LED doit être connecté à la broche 5V de l'ESP32, et le fil de masse (GND) doit être connecté à l'une des broches GND de l'ESP32.
Connectez ensuite le fil d'entrée de données de la bande LED à la broche 14 de l'ESP32. Assurez-vous que les connexions sont sécurisées pour garantir une bonne transmission des données. Si vous utilisez plusieurs bandes ou des distances plus longues, envisagez d'utiliser un convertisseur de niveau pour assurer l'intégrité du signal. Cette configuration vous permettra de contrôler la bande LED directement depuis l'ESP32.
Exemples de code et guide étape par étape
Le code utilise la bibliothèque Adafruit NeoPixel pour contrôler la bande LED WS2812. Il commence par initialiser la bande LED et définir la couleur initiale sur le noir. Les identifiants clés dans le code incluentLED_PIN, qui définit la broche connectée à la ligne de données de la bande LED, etNUM_LEDS, qui spécifie le nombre de LED dans la bande.
#include // Include the Adafruit NeoPixel library
#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
Dans la fonction de configuration, la bande est initialisée en utilisantstrip.begin(), et la couleur initiale est définie sur noir avecstrip.show(). Cela prépare la bande aux changements de couleur lorsque le programme s'exécute.
void setup() {
strip.begin(); // Initialize the NeoPixel strip
strip.show(); // Set initial color to black
}
La boucle principale du programme se compose de deux boucles for. La première boucle allume chaque LED une par une en définissant sa couleur et en mettant à jour la bande. La seconde boucle éteint chaque LED de la même manière. Cela crée une animation lumineuse simple mais efficace.
void loop() {
// Turn on LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
// Turn off LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
}
Découvrez le code complet ci-dessous l'article pour plus de détails sur la façon de mettre en œuvre différents effets de couleur et animations.
Démonstration / Ce à quoi s'attendre
Une fois que vous avez terminé le câblage et téléchargé le code, vous devriez voir les LEDs sur la bande s'allumer une par une dans une couleur spécifiée, suivies de leur extinction dans la même séquence. Cela crée un effet de "lumière courante". Si les LEDs ne s'allument pas comme prévu, vérifiez à nouveau vos connexions de câblage et assurez-vous que l'alimentation est adéquate. Vérifiez également que la bonne broche est définie dans le code (dans la vidéo à 12:30).
Horodatages vidéo
- 00:00 Début
- 1:40 Introduction aux LED WS2812
- Page de documentation du projet 7:25
- 9:16 Couleur RGB expliquée
- 13:16 Explication du câblage
- 13:48 Explication du code Arduino-1
- 19:03 Sélection de la carte ESP32 et du port sur l'IDE Arduino
- 20:45 Démonstration Code-1
- 22:00 Contrôle d'une LED individuelle
- 24:16 Lumière LED de marche
- 25:41 Lumière va-et-vient
Common Course Links
Common Course Files
Ce dont vous pourriez avoir besoin
-
Amazon
-
eBay
-
AliExpressAcheter une bande LED WS2812 sur AliExpress-2s.click.aliexpress.com
-
AliExpressAchetez une bande LED WS2812 sur AliExpresss.click.aliexpress.com
-
BanggoodAchetez une bande LED WS2812 sur Banggoodbanggood.com
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.