Teensy 4.1结合OctoWS2811与Art-Net的技术问题求助
问题:Teensy 4.1 + PJRC以太网套件的Art-Net/LED输出故障及配置疑问
原本使用Arduino Mega 2560搭配以太网盾可输出两个DMX宇宙,因算力不足更换为Teensy 4.1及PJRC以太网套件后,遇到以下问题:
- 引入
Ethernet.h/EthernetUDP.h时代码编译失败,提示重复初始化 - 改用NativeEthernet库后编译通过,但无法接收任何子网/宇宙的Art-Net信号,仅能看到init()生成的图案
- 不使用OctoWS2811库手动编写代码时,LED条存在输出延迟问题
此外还有两个疑问:
- OctoWS2811库搭配适配板是否会自动分配Teensy引脚(如灯带1对应引脚2)?
- 如何通过编程实现特定子网与宇宙的信号对应指定引脚(如子网1宇宙0对应引脚7)?此前无Octo库时的实现方式见以下代码:
原初始化代码
const byte dataPinOut1 = 2; // 0 - 7 / sub 0 const byte dataPinOut2 = 14; // 8 - 15 / sub 0 byte SubnetID1 = {0}; // for PinOut1 byte UniverseID1 = {0}; // for PinOut1 short selectStartUniverse1 = ((SubnetID1*16)+UniverseID1); // for PinOut1 byte SubnetID2 = {0}; // for PinOut2 byte UniverseID2 = {8}; // for PinOut2 short selectStartUniverse2 = ((SubnetID2*16)+UniverseID2); // for PinOut2
原setup函数
artnet.begin(mac, ip); ledsOut1.begin(); ledsOut2.begin(); artnet.setBroadcast(broadcast);
原loop函数
if(r == ART_DMX && uni == startUniverseOut1){ data = artnet.getDmxFrame(); for (int i = 0; i < numLedsOut1; i++){ ledsOut1.setPixelColor(i, data[i * channelsPerLed], data[i * channelsPerLed + 1], data[i * channelsPerLed + 2]); } ledsOut1.show(); } if(r == ART_DMX && uni == startUniverseOut2){ data = artnet.getDmxFrame(); for (int i = 0; i < numLedsOut2; i++){ ledsOut2.setPixelColor(i, data[i * channelsPerLed], data[i * channelsPerLed + 1], data[i * channelsPerLed + 2]); } ledsOut2.show(); }
已确认LED接线正确,即使安装Paul Stoffregen专为Teensy开发的Ethernet库,仍无法编译成功,恳请技术支持。
内容的提问来源于stack exchange,提问作者Steven Woodlink
相关产品推荐
相关产品推荐

