Led RVB 5 mm avec contrôleur compatible WS2812B
Led RVB 5mm à boîtier diffusant - Pilotage par 1 fil - contrôleur compatible WS2812B
Cette Led RGB de diamètre 5 mm avec boîtier diffusant dispose de 4 broches. 1 cathode, 1 anode, 1 broche pour signal de commande série (DIN), 1 broche pour signal de chaînage série (DOUT).
Cette dernière intègre un contrôleur compatible WS2812B (lequel s'apparente à une sorte de microcontrôleur). Ce contrôleur est destiné à recevoir des signaux de commande en provenance d'un microcontrôleur externe (comme une carte Arduino, une carte Raspberry Pi, etc...). Ces signaux de commande contiennent des informations sur la couleur que la Led doit afficher. Le fonctionnement du contrôleur WS2812B repose sur une communication sérielle.
La Led possède trois canaux (rouge, vert, bleu) pour contrôler la couleur, et ces informations sont envoyées dans un ordre séquentiel via un seul fil de données. Lorsqu'un signal de commande est envoyé depuis le microcontrôleur externe vers le contrôleur WS2812B, celui-ci interprète les informations et ajustent la couleur de la Led individuellement en fonction des données reçues. Ce contrôle individuel des Leds permet de créer une grande variété d'effets lumineux, offrant ainsi une flexibilité pour des applications d'affichage visuel ludique.
La led dispose d'une protection contre les inversions de polarité. La tension d'alimentation de la led peut être comprise entre 3.3 et 5 V.
Exemple d'utilisation avec une platine Arduino Uno.
Une librairie compatible avec le contrôleur WS2812B devra être préalablement installée. Vous pourrez par exemple utiliser la librairie https://github.com/pololu/pololu-led-strip-arduino
Une fois installée, vous disposerez d'exemples de pilotage dans le menu exemples de l'IDE de l'Arduino. Nous donnons ci-dessous un exemple issu de ces programmes permettant une variation de couleur de 2 leds à partir du port 6 de la carte Arduino.
#include <PololuLedStrip.h>
PololuLedStrip<6> ledStrip; // Utilisation du port N° 6 de la carte Arduino pour piloter les leds
#define LED_COUNT 2 // Nombre de leds à piloter (ici 2 leds)
rgb_color colors[LED_COUNT];
void setup()
{
}
rgb_color hsvToRgb(uint16_t h, uint8_t s, uint8_t v)
{
uint8_t f = (h % 60) * 255 / 60;
uint8_t p = (255 - s) * (uint16_t)v / 255;
uint8_t q = (255 - f * (uint16_t)s / 255) * (uint16_t)v / 255;
uint8_t t = (255 - (255 - f) * (uint16_t)s / 255) * (uint16_t)v / 255;
uint8_t r = 0, g = 0, b = 0;
switch((h / 60) % 6){
case 0: r = v; g = t; b = p; break;
case 1: r = q; g = v; b = p; break;
case 2: r = p; g = v; b = t; break;
case 3: r = p; g = q; b = v; break;
case 4: r = t; g = p; b = v; break;
case 5: r = v; g = p; b = q; break;
}
return rgb_color(r, g, b);
}
void loop()
{
// Update the colors.
uint16_t time = millis() >> 2;
for(uint16_t i = 0; i < LED_COUNT; i++)
{
byte x = (time >> 2) - (i << 3);
colors[i] = hsvToRgb((uint32_t)x * 359 / 256, 255, 255);
}
// Write the colors to the LED strip.
ledStrip.write(colors, LED_COUNT);
delay(10);
}
Exemple d'utilisation avec une platine micro:bit sous environnement Makecode.
Il vous faudra télécharger l'extension neopixel pour pouvoir piloter les leds compatibles WS2812B à l'aide la carte micro:bit sous l'environnement Makecode.
L'exemple de programme ci-dessous permet d'allumer la première led avec la couleur rouge et la seconde avec la couleur bleue.
neopixel est une marque déposée par la société Adafruit.