ws2812.ino
Le ruban d'adresseables est LE projet NodeMCU : une seule broche, 800 kHz de trainées de bits, et l'effet waouh. Le sketch anime une comète ; la discipline, c'est l'alimentation 5 V séparée et le plan de masse.
Matériel requis
Un module ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) monté sur une carte NodeMCU / Wemos D1 mini, alimentée par micro-USB. 16 WS2812B (ruban ou anneau) + alimentation 5 V ≥ 1 A + résistance 330-470 Ω sur la data.
Branchement
Data du ruban via 470 Ω vers D2, VDD sur l'alim externe, GND ruban relié à la masse de la carte. Condensateur 1000 µF sur l'alimentation du ruban conseillé.
Fonctionnement
NeoPixel assemble la trame NRZ 800 kHz (chaque bit = une durée d'impulsion) et l'envoie d'un bloc sur show(). setBrightness réduit le courant max sans changer les couleurs relatives. Dans l'Arduino IDE, installez le paquet « esp8266 », choisissez « NodeMCU 1.0 (ESP-12E Module) » puis Téléverser (GPIO0 à LOW si le flash échoue). L'ADC A0 lit 0-1 V (diviseur NodeMCU : 0-3,3 V).
Pour aller plus loin
Météo en couleur (couleur = température), ou balayage synchronisé avec le servo du sketch précédent.
ws2812.ino
// 16 WS2812B sur D2 (GPIO4) — bibliotheque Adafruit NeoPixel.
// Ruban alimente en 5 V EXTERNE, data via resistance 330-470 ohms.
#include <Adafruit_NeoPixel.h>
#define NB 16
#define PIN 4
Adafruit_NeoPixel ruban(NB, PIN, NEO_GRB + NEO_KHZ800);
int tete = 0;
void setup() {
ruban.begin();
ruban.setBrightness(80); // menage l'alimentation
ruban.clear();
ruban.show();
Serial.begin(115200);
}
void loop() {
ruban.clear();
ruban.setPixelColor(tete, 255, 80, 0);
ruban.setPixelColor((tete + NB - 1) % NB, 60, 20, 0); // trainee
ruban.setPixelColor((tete + 1) % NB, 60, 20, 0);
ruban.show(); // trame complete
tete = (tete + 1) % NB;
delay(60);
}