WS2812
WS2812 是一种常见 LED,因控制方式简单且支持全彩显示,被广泛用于 DIY 电子和照明项目。每个 WS2812 单元由 red、green、blue LED (RGB) 和一个集成控制电路组成,并封装在单个元件中。该控制电路使每个 LED 都可以独立寻址,并通过单根 data line 控制,因此在布线和控制复杂度方面非常高效。下面简要说明 WS2812 protocol:
1. 通信协议
WS2812 LED 通过单根 data line 的 serial communication protocol 控制。该协议对时序非常敏感,信号 high 和 low 的持续时间决定一个 bit 被解释为 “0” 还是 “1”。
2. 数据格式
每个 WS2812 LED 接收 24 bit 的颜色亮度数据,其中 red、green、blue 各 8 bit。颜色发送顺序可能因制造商而异,但通常为 green、red、blue。每种颜色的数据通常如下:
- Green: 8 bits
- Red: 8 bits
- Blue: 8 bits
3. 时序要求
WS2812 protocol 对时序非常敏感。数据通过特定持续时间的脉冲发送:
- 0 bit: 短 high pulse(约 400 ns)后跟较长 low pulse(约 850 ns)。
- 1 bit: 长 high pulse(约 800 ns)后跟短 low pulse(约 450 ns)。
不同批次或不同制造商的 LED,具体时序可能略有差异。
4. Reset Pulse 复位脉冲
在一组 LED 数据传输结束时,需要发送 reset pulse,通知 LED 根据收到的数据更新显示颜色。该 reset pulse 是 low signal,持续时间必须至少为 50 microseconds。
5. LED 级联
多个 WS2812 LED 可以串联。数据流从 microcontroller 发送到链上的第一个 LED。每个 LED 提取自己的 24-bit 数据,并将剩余 bit 传递给下一个 LED。通过这种级联方式,即使使用数百个 LED,也只需要 controller 的一根 data line。
6. 电源要求
每个 WS2812 LED 通常工作在约 5V。使用大量 LED 时电流消耗可能很高,尤其是所有 LED 以 full brightness 显示白色时,每个 LED 可能消耗最高约 60 mA。
附件:

