ruban-neopixel.ino

Arduino Pro Mini · Archivo : ruban-neopixel.ino · Lenguaje : Arduino · Uso : Animation arc-en-ciel sur ruban d'adresseables NeoPixel

Una cabeza luminosa se desplaza por una tira de 16 LED NeoPixel (WS2812B) con una estela roja. Cada LED es direccionable individualmente mediante un protocolo de un solo hilo, controlado por la librería Adafruit_NeoPixel.

Hardware

Un Arduino Pro Mini (ATmega328P, existe en 5 V/16 MHz y 3,3 V/8 MHz) conectado a un convertidor USB-serie (FTDI) o un programador ICSP. 1 tira o anillo NeoPixel (WS2812B), alimentación de 5V dedicada recomendada + condensador de 470-1000 µF en la alimentación.

Cableado

Data (DIN) de la tira al pin 6 (resistencia de 330 Ω aconsejable), VCC a 5V (o 5V externo), GND común con la placa.

Funcionamiento

setPixelColor() acumula colores en un búfer, show() envía el trama completa. La posición de la cabeza avanza y da la vuelta con el módulo.

Ejecución

Elige « Arduino Pro Mini » en el IDE (5 V/16 MHz o 3,3 V/8 MHz según tu modelo), el procesador ATmega328P, el puerto correcto y Subir. El convertidor debe estar cableado DTR-DTR, RX-TX, TX-RX, VCC-VCC, GND-GND.

Variantes

La librería FastLED para efectos más ricos (Chase, Rainbow), o controlar el color con una orden serie recibida por 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);
}

← Volver a la ficha