← Wiki · Componente

LED RGB direccionable (WS2812B, SK6812)

Un LED RGB con un pequeño controlador dentro. Encadena tantos como quieras en un solo pin de datos; cada uno toma su color y pasa el resto.

Qué hace#

Cada LED tiene cuatro pines: VDD (5 V), GND, DIN y DOUT. El microcontrolador envía un flujo de datos de color al DIN del primer LED; cada LED se queda con los primeros 24 bits (verde, rojo, azul) y reenvía el resto por DOUT. Un solo GPIO controla cientos de LED. Librerías: FastLED, Adafruit NeoPixel, led_strip de ESP-IDF, RGB de QMK/ZMK.

El catálogo tiene tres encapsulados con pinouts distintos (un símbolo para cada uno):

Componente Tamaño Uso
WS2812B-V5 5 × 5 mm underglow, tiras, estado
WS2812B-2020 2 × 2 mm luces de estado pequeñas
SK6812MINI-E 3.2 × 2.8 mm, montaje inverso luz por tecla que brilla hacia arriba a través del switch

Conexionado#

  • 100 nF por LED entre VDD y GND, cerca del LED. La hoja de datos clásica del WS2812B dibuja uno por LED; la revisión V5 dice que no necesita ninguno, pero el condensador es un seguro barato en una cadena larga.
  • 330 Ω en serie con la línea de datos en el primer LED (reduce el ringing y protege la entrada). Adafruit recomienda 300–500 Ω en el extremo del cable que da al LED.
  • Condensador de reserva (bulk) donde entran los 5 V (electrolítico para tiras).
  • Alimentación: WS2812B-V5 3.7–5.3 V, SK6812MINI-E 3.7–5.5 V. Un raíl de 5 V sirve para ambos; una LiPo casi vacía (3.5 V) está por debajo del mínimo.
  • Nivel de datos: la entrada necesita 0.7 × VDD para leer un uno: 3.5 V a 5 V (WS2812B clásico, SK6812MINI-E). El WS2812B-V5 pide 0.63 × VDD = 3.15 V, así que la lógica de 3.3 V lo cumple casi sin margen. Con cables cortos suele funcionar; con cables largos y ruido en la masa falla. Usa un adaptador de nivel.
Circuito de ejemplo: LED_DATA → 330 Ω → DIN de D1; DOUT de D1 → DIN de D2. Cada LED tiene su propio condensador de 100 nF; C3 es el condensador de reserva.
LED_DATA → 330 Ω → DIN de D1; DOUT de D1 → DIN de D2. Cada LED tiene su propio condensador de 100 nF; C3 es el condensador de reserva. Abre el ejemplo ws2812_chain de esta página en PCB Canvas: «Insertar en mi esquemático».

Alimentación#

Las hojas de datos del WS2812B-V5 y del SK6812MINI-E dan 12 mA por color, así que el blanco completo son unos 36 mA por LED. Adafruit calcula hasta 60 mA por píxel en blanco completo para los NeoPixel en general (otras revisiones y clones). Planifica con 60 mA: así 60 LED pueden consumir 3.6 A, más de lo que da un USB. Limita el brillo en el firmware y dimensiona la fuente y el cobre.

Errores comunes#

  • El pinout cambia según el encapsulado. No cambies una huella 5050 por un componente 2020; usa el genérico que corresponda.
  • El primer LED como adaptador de nivel. Algunas placas alimentan el primer LED a ~4.3 V (5 V menos un diodo) para que los datos de 3.3 V alcancen su umbral; funciona, pero es un apaño.
  • Conectar en caliente una tira con los datos conectados primero puede matar el primer LED. Conecta primero GND, luego 5 V y luego los datos.
  • El tiempo de reset es distinto: el V5 necesita más de 280 µs en bajo entre tramas (el componente clásico 50 µs). Las librerías actuales lo gestionan; el código muy antiguo puede que no.

Huella#

  • Soldadura a mano: el 5050 es fácil, el 2020 necesita aire caliente.
  • JLCPCB: los tres son componentes extendidos (con tarifa de alimentador). El SK6812MINI-E es de montaje inverso: se asienta en un agujero de la PCB y brilla a través de él.