ruban-neopixel.ino

Arduino UNO R3 · Fichier : ruban-neopixel.ino · Langage : Arduino · Usage : Animation arc-en-ciel sur ruban d'adresseables NeoPixel

Une tête lumineuse se déplace sur un ruban de 16 LED NeoPixel (WS2812B) avec une traînée rouge. Chaque LED est adressable individuellement via un protocole à fil unique, piloté par la bibliothèque Adafruit_NeoPixel.

Matériel requis

Une Arduino Uno R3 (ATmega328P, 5 V, 16 MHz) alimentée par USB ou jack 7-12 V. 1 ruban ou anneau NeoPixel (WS2812B), alimentation 5V dédiée recommandée + condensateur 470-1000 µF sur l'alimentation.

Câblage

Data (DIN) du ruban vers la broche 6 (via résistance 330 Ω conseillée), VCC sur 5V (ou 5V externe), GND commun avec la carte.

Fonctionnement

setPixelColor() empile les couleurs dans une mémoire tampon, show() envoie la trame complète. La position de la tête avance et s'enroule avec le modulo.

Exécution

Dans l'Arduino IDE, choisissez la carte « Arduino Uno » et le port série correspondant, puis cliquez sur Téléverser. Ouvrez le moniteur série à 9600 bauds pour suivre les messages.

Variantes

Bibliothèque FastLED pour des effets plus riches (Chase, Rainbow), ou piloter la couleur par une commande série reçue sur Serial.

ruban-neopixel.ino

// Animation "marche" sur ruban NeoPixel (WS2812B).
#include <Adafruit_NeoPixel.h>

const int PIN = 6;
const int NB_LED = 16;
Adafruit_NeoPixel ruban(NB_LED, PIN, NEO_GRB + NEO_KHZ800);

int tete = 0;

void setup() {
  ruban.begin();
  ruban.setBrightness(60); // attention : 255 = jusque 3 A pour 60 LED !
  Serial.begin(9600);
}

void loop() {
  ruban.clear(); // eteint tout

  // Une tete blanche + 4 cometes rouges qui se deplacent.
  ruban.setPixelColor(tete, ruban.Color(255, 255, 255));
  for (int i = 1; i <= 4; i++) {
    int pos = (tete - i + NB_LED) % NB_LED;
    ruban.setPixelColor(pos, ruban.Color(255 - i * 50, 0, 0));
  }
  ruban.show(); // une seule trame serial vers les LED

  tete = (tete + 1) % NB_LED;
  delay(80);
}

← Retour à la fiche