ws2812.ino

ESP8266 (módulo ESP-12E) · Archivo : ws2812.ino · Lenguaje : Arduino · Uso : Animer un ruban d'adresseables WS2812B

La tira de direccionables es EL proyecto NodeMCU: un solo pin, 800 kHz de trenes de bits y efecto garantizado. El sketch anima un cometa; la disciplina está en la alimentación de 5 V separada y el plan de masas.

Hardware necesario

Un módulo ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) montado en una placa NodeMCU / Wemos D1 mini, alimentada por micro-USB. 16 WS2812B (tira o anillo) + alimentación de 5 V ≥ 1 A + resistencia de 330-470 Ω en la data.

Cableado

Data de la tira por 470 Ω a D2, VDD a la alimentación externa, GND de la tira unido a la masa de la placa. Condensador de 1000 µF en la alimentación de la tira, recomendado.

Funcionamiento

NeoPixel ensambla la trama NRZ de 800 kHz (cada bit es un ancho de impulso) y la lanza de golpe en show(). setBrightness reduce la corriente máxima sin cambiar los colores relativos. En el Arduino IDE, instale el paquete « esp8266 », elija « NodeMCU 1.0 (ESP-12E Module) » y suba (mantenga GPIO0 a LOW si falla). El ADC A0 lee 0-1 V (divisor NodeMCU: 0-3,3 V).

Para ir más lejos

Tiempo en color (color = temperatura), o barrido sincronizado con el servo del sketch anterior.

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);
}

← Volver a la ficha