Arduino Nano - Bande LED WS2812B

La bande LED RVB WS2812B est une ligne de LED dont la couleur et la luminosité de chacune peuvent être ajustées indépendamment. Ce tutoriel vous explique comment utiliser un Arduino Nano pour contrôler la bande LED RVB WS2812B. En détail, nous allons apprendre :

Toutes les LED de la bande peuvent être contrôlées avec un seul pin numérique de l'Arduino Nano.

Préparation du matériel

1×Official Arduino Nano
1×Alternativement: DIYables ATMEGA328P Nano Development Board
1×Câble USB A vers Mini-B
1×WS2812B RGB Bande LED
1×1000uF Capacitor
1×470Ω Resistor
1×Adaptateur secteur 5V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino Nano
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 RGB WS2812B dispose de trois broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à 5V d'une source d'alimentation externe
  • Broche Din : est la broche qui reçoit le signal de commande et doit être connectée à une broche numérique d'un Arduino Nano.
Brochage WS2812B

※ Note:

L'ordre des broches peut varier d'un fabricant à l'autre. Il est impératif d'utiliser toujours les étiquettes imprimées sur le ruban LED.

Diagramme de câblage

Schéma de câblage de la bande LED RVB Arduino Nano WS2812B

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter un Arduino Nano..

Comment programmer pour la bande LED RGB WS2812B

Il existe deux bibliothèques qui peuvent être utilisées pour contrôler une bande de 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 2 // Broche Arduino Nano qui se connecte au WS2812B #define NUM_PIXELS 30 // Le nombre de LED (pixels) sur WS2812B Adafruit_NeoPixel WS2812B(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
  • Initialise WS2812B.
WS2812B.begin(); // INITIALISER l'objet bande WS2812B (OBLIGATOIRE)
  • Précisez la couleur de chaque LED individuelle (appelée un pixel).
WS2812B.setPixelColor(pixel, WS2812B.Color(255, 0, 0));
  • Ajustez la luminosité de toute la bande.
WS2812B.setBrightness(100); // une valeur de 0 à 255

※ Note:

  • WS2812B.setBrightness() est utilisé pour ajuster la luminosité de tous les pixels sur la bande de LED. Pour régler la luminosité de chaque pixel individuel, nous pouvons échelonner 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() est appelé.

Code Arduino Nano

Le code ci-dessous exécute les séquences suivantes :

  • Transforme 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 pendant deux secondes
  • Répète ce processus indéfiniment
/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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/arduino-nano/arduino-nano-ws2812b-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_WS2812B 2 // The Arduino Nano 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

  • Cliquez sur l'icône Libraries située dans la barre latérale gauche de l'IDE Arduino.
  • Recherchez "Adafruit NeoPixel" et localisez la bibliothèque NeoPixel par Adafruit.
  • Ensuite, appuyez sur le bouton Install pour installer la bibliothèque NeoPixel.
Bibliothèque Arduino Nano ws2812b
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino Nano.
  • Observez l'effet de la LED.

※ Note:

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

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !