ESP8266 - Bandeau LED WS2812B

La bande LED RGB WS2812B est composée de LEDs dont la couleur et la luminosité peuvent être ajustées individuellement. Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler la bande LED RGB WS2812B. En détail, nous allons apprendre :

Nous avons seulement besoin d'utiliser une broche numérique de l'ESP8266 pour contrôler toutes les LED de la bande.

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×WS2812B RGB LED Strip
1×1000uF Capacitor
1×470Ω resistor
1×5V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 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 WS2812B

Brochage de la bande LED WS2812B

La bande LED RVB WS2812B possède trois broches nécessitant des connexions spécifiques :

  • La broche GND doit être reliée à GND (0V)
  • La broche VCC doit être connectée aux 5V d'une source d'alimentation externe
  • La broche Din est la broche qui reçoit le signal de contrôle et doit être reliée à une broche ESP8266.
Brochage WS2812B

※ NOTE THAT:

La séquence des broches peut varier selon le fabricant. Il est IMPÉRATIF d'utiliser les marquages imprimés sur la bande LED.

Diagramme de câblage

Schéma de câblage du ruban à LED RGB WS2812B ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Comment programmer pour la bande LED RGB WS2812B

Il existe deux bibliothèques qui peuvent être utilisées pour contrôler la bande LED WS2812B :

  • Bibliothèque Adafruit NeoPixel.
  • Bibliothèque FastLED.

Ce tutoriel utilisera la bibliothèque Adafruit NeoPixel.

  • Créez un objet WS2812B
#define PIN_WS2812B D1 // Le pin ESP8266 qui se connecte à WS2812B #define NUM_PIXELS 30 // Le nombre de LEDs (pixels) sur WS2812B Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
  • Bande avec 30 LED
  • Initie la bande WS2812B qui contient 30 lumières.
WS2812B.begin(); // INITIALISER l'objet bande WS2812B (REQUIS)
  • Spécifiez la couleur de chaque LED (connue sous le nom de pixel).
WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0));
  • Ajustez la luminosité de toutes les bandes.
WS2812B.setBrightness(100); // une valeur de 0 à 255

※ NOTE THAT:

WS2812B.setBrightness() est utilisé pour ajuster la luminosité de tous les pixels sur la bande LED. Pour régler la luminosité de chaque pixel individuellement, nous pouvons mettre à l'échelle les valeurs de couleur (R, G, B) avec le même rapport.

Les valeurs définies par WS2812B.setBrightness() et WS2812B.setPixelColor() ne seront appliquées que lorsque WS2812B.show() sera exécuté.

Code ESP8266

Le code ci-dessous effectue les séquences suivantes :

  • Transformez les pixels en vert un par un avec un délai entre chaque pixel
  • Éteint tous les pixels pendant deux secondes
  • Allume tous les pixels en rouge simultanément pendant deux secondes
  • Répète ce processus indéfiniment
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-ws2812b-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_WS2812B D1 // The ESP8266 pin that connects to WS2812B #define NUM_PIXELS 30 // The number of LEDs (pixels) on WS2812B Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800); void setup() { WS2812B.begin(); // INITIALIZE WS2812B strip object (REQUIRED) } void loop() { WS2812B.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 WS2812B.setPixelColor(pixel, WS2812B.Color(0, 255, 0)); // it only takes effect if pixels.show() is called WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(DELAY_INTERVAL); // pause between each pixel } // turn off all pixels for two seconds WS2812B.clear(); WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // 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 WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // on time // turn off all pixels for one seconds WS2812B.clear(); WS2812B.show(); // send the updated pixel colors to the WS2812B hardware. delay(2000); // off time }

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
  • Recherchez "Adafruit NeoPixel" et localisez la bibliothèque NeoPixel d'Adafruit.
  • Ensuite, appuyez sur le bouton Install pour installer la bibliothèque NeoPixel.
Bibliothèque NeoPixel ESP8266 NodeMCU
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload pour envoyer le code à l'ESP8266.
  • Observez l'effet de la LED.

※ NOTE THAT:

Pour tout effet LED complexe, nous proposons le service de programmation payant

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!