🛠 Mur de LEDs et panneaux HUB75 : OctoWS2811, WS2812Serial et SmartMatrix sur le 4.1
Objetivos
El Teensy 4.1 es la referencia para muros de LEDs gracias a tres motores DMA: OctoWS2811 (refresca 1 920+ LEDs a 30 Hz y, especificidad del 4.1, sobre un número cualquiera de pines paralelos — el límite de 8 pines de los Teensy 3.x desaparece), WS2812Serial (hasta 8 instancias DMA no bloqueantes sobre puertos serie) y SmartMatrix (paneles HUB75 de 32x16 hasta 128x64 con el SmartLED Shield v4/v5). Todo ello con una CPU casi libre para la animación.
Material
- 1 Teensy 4.1 + cable micro-USB de datos
- Tiras WS2812B con alimentación de 5 V dedicada (los datos permanecen en 3,3 V: el Teensy alimenta los datos, no los LEDs)
- Para HUB75: un SmartLED Shield v4 o v5 y un panel compatible
Puntos clave
- OctoWS2811 reserva los pines y los temporizadores que controla — en particular los canales QuadTimer4, reservados por la biblioteca: no los utilice para otros fines.
- WS2812Serial es no bloqueante: cada instancia es un puerto serie DMA dedicado, ideal cuando la animación se ejecuta por otro lado.
- SmartMatrix en el 4.1 explota el incipiente Pixel Processing Pipeline — PJRC aún lo describe como muy experimental; la biblioteca en sí es madura.
- La regla eléctrica absoluta: los pines del Teensy solo toleran 3,3 V; los datos WS2812 generalmente aceptan el nivel de 3,3 V como umbral alto, pero en caso de una tira caprichosa, un traductor de 3,3 V → 5 V en la línea de datos es la solución correcta.
Procedimiento (OctoWS2811)
- Instale la biblioteca a través del Library Manager o https://www.pjrc.com/teensy/td_libs_OctoWS2811.html.
- Declare
OctoWS2811 leds(ledsPerStrip, displayType, octoPins)con sus pines paralelos. leds.beginy luego dibuje conleds.setPixel(index, color)yleds.update— una sola actualización DMA refresca todas las tiras.- Para el ejemplo de vídeo completo (1920 LEDs), siga la página de OctoWS2811 de PJRC.
Procedimiento (SmartMatrix)
- Monte el SmartLED Shield v4/v5, ajuste la resolución del panel en SM_config.h (el 4.1 acepta hasta 128x64).
- Ejemplos de animación GIF y compatibilidad con FastLED proporcionados por la biblioteca.
Verificación esperada
Tiras enteras se animan a 30 Hz o más sin tirones mientras Serial y sus sensores siguen funcionando: esa es la firma de las transferencias DMA. La temperatura del die permanece razonable (consulte el tutorial de memoria para monitorizarla).
Errores frecuentes
- Alimentación de los LEDs tomada de los 3,3 V del Teensy: salida reservada al regulador integrado, máx. 250 mA — un muro de LEDs se alimenta con 5 V externo, con las masas conectadas.
- Olvidar la resistencia en serie (~330 Ω) en la línea de datos y el condensador en la alimentación de la primera tira.
- Confundir las tres bibliotecas: OctoWS2811 = pines paralelos síncronos; WS2812Serial = puertos serie DMA; SmartMatrix = paneles HUB75.
- Seguir un cableado JTAG antiguo: los pines JTAG se reubicaron en junio de 2022 en el 4.1 — verifique la fecha de su placa antes de seguir una guía antigua.
Otros tutoriales para esta placa
- Premiers pas sur le Teensy 4.1 : Teensyduino, Teensy Loader et premier Blink
- GPIO et PWM sur le Teensy 4.1 : 55 broches en 3,3 V, ni 5 V tolérées ni traîne
- Entrées analogiques du Teensy 4.1 : 18 broches, 2 ADC, 0-3,3 V fixes et zéro DAC
- Logger sur carte SD via le port SDIO natif du Teensy 4.1
- Serveur web embarqué : l'Ethernet natif 10/100 du Teensy 4.1 (DP83825)
- Boîte à rythmes USB MIDI : classes MIDI, MIDIx16 et port hôte USBHost_t36
Ejemplos de código para esta placa
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino