ESP32 - Bandeau LED NeoPixel

La bande NeoPixel est comme une bande de LED RVB colorées, et vous pouvez contrôler la couleur et la luminosité de chaque LED individuellement. Dans ce guide, nous allons découvrir comment utiliser un ESP32 pour contrôler la bande LED RVB NeoPixel. Pour contrôler toutes les LED sur la bande NeoPixel, vous avez besoin d'une seule broche sur l'ESP32.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×NeoPixel RGB LED Strip
1×1000uF Capacitor
1×470Ω resistor
1×5V Power Adapter
1×(Optional) DC Power Jack
1×Jumper Wires
1×Breadboard
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

À propos de la bande LED RGB NeoPixel

Brochage

La bande LED RGB NeoPixel a trois broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à 5V de l'alimentation externe
  • Broche Din : est la broche qui reçoit le signal de commande. Elle doit être connectée à une broche GPIO de l'ESP32.
Brochage NeoPixel

Diagramme de câblage

Schéma de câblage de la bande LED RGB NeoPixel ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Comment programmer une bande LED RGB NeoPixel

  • Déclarer un objet NeoPixel
#define PIN_NEO_PIXEL 16 // Le pin GPIO16 de l'ESP32 connecté à NeoPixel #define NUM_PIXELS 30 // Le nombre de LEDs (pixels) sur NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Initialise le NeoPixel
NeoPixel.begin(); // INITIALISER l'objet bande NeoPixel (REQUIS)
  • Définissez la couleur de chaque LED individuelle (appelée pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Définissez la luminosité de toute la bande.
NeoPixel.setBrightness(200); // une valeur de 0 à 255

※ NOTE THAT:

  • NeoPixel.setBrightness() est utilisé pour tous les pixels sur la bande LED. Pour régler la luminosité de chaque pixel individuellement, nous pouvons ajuster la valeur de la couleur.
  • Les valeurs définies par NeoPixel.setBrightness() et NeoPixel.setPixelColor() prennent effet uniquement lorsque NeoPixel.show() est appelé.

Code ESP32

Le code suivant réalise les tâches suivantes :

  • Il change séquentiellement les pixels en vert, avec une pause entre chaque pixel.
  • Il éteint tous les pixels pendant une durée de deux secondes.
  • Il règle simultanément tous les pixels sur rouge, maintenant cet état pendant 1 seconde.
  • L'ensemble du processus est ensuite répété indéfiniment.
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 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

  • Si c'est la première fois que vous utilisez l'ESP32, consultez comment configurer l'environnement pour l'ESP32 sur Arduino IDE.
  • Réalisez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, Module de développement ESP32) et le port COM.
  • Cliquez sur l'icône Libraries dans la barre latérale 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.
Bibliothèque NeoPixel ESP32
  • 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 ESP32
  • Vérifiez l'effet de la bande LED

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!