ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

[光学原理与应用-974]:WS2812B 通信协议 RGB 灯条原理

[光学原理与应用-974]:WS2812B 通信协议  RGB 灯条原理

WS2812B 是单总线串行智能 RGB LED,内置驱动 IC,每颗灯珠自带 R/G/B 三色,所有灯珠共用一根 DATA 信号线,电源独立;灯珠级联,前一颗的 DOUT 接下一颗 DIN,实现一串灯条可控。

WS2812B 灯条就是把大量 WS2812B 芯片 + LED 贴在 FPC 柔性电路板上,常见 5V 供电。

1、硬件引脚

表格

引脚说明
VDD电源+5V,严禁接 3.3V,亮度不足;电压压降大时需要中间补电
GND地,必须和主控共地,通信失败头号原因
DIN数据输入,接收MCU主控信号
DOUT数据输出,级联,接到下一颗灯珠 DIN

⚠️重要:

WS2812B 是5V 电平器件;3.3V 单片机(STM32、ESP32)输出电平不够,长距离容易乱码,建议串联 470Ω 电阻在 DIN 线上,电源端加 1000uF 电解电容防上电冲击。

2、通信协议(单线归零码,NRZ)

无时钟线,依靠高低电平时间区分 0 码、1 码,属于时序协议,不是 I2C/SPI。 每个 LED 占用24bit 数据:8bit R + 8bit G + 8bit B

注意:WS2812B 顺序是GRB,不是 RGB!很多人颜色错乱就是这个坑:G(8bit), R(8bit), B(8bit)

位时序(典型)

表格

信号高电平 T0H低电平 T0L含义
Bit 00.35μs0.8μs发送 0
Bit 10.7μs0.6μs发送 1

发送完一整串所有 LED 的 24bit 数据之后,发送RESET 复位信号:低电平≥50μs复位信号到来后,整串灯锁存刚刚收到的数据,刷新颜色;之后开始接收下一轮数据。

通信流程:主控 → DIN发送LED1(24bit) → LED2(24bit) → LED3(24bit)... → RESET低电平锁存显示芯片内部逻辑:收到 24bit,把剩余数据从 DOUT 转发给下一级,数据流水线向后传递

第 N 颗灯,前面 N×24bit 数据全部要从它穿过。所以控制100 颗灯,主控必须输出100*24 = 2400 bit

3、WS2812B 灯条特点

  1. 供电 5V,每颗灯最大约 60mA;满亮度全白,一米 60 珠灯条总电流≈3.6A,功耗很大。
  2. 级联:DIN→DOUT 无限串,但信号会衰减,一般建议单段不超过 30‑50 颗,超过要分段驱动 + 补电。
  3. 压降问题:灯条越长,末端电压越低,后面灯珠偏暗、偏色。长灯条每隔 20‑30 颗,两端补 5V 电源,GND 连通
  4. 速率:位周期约 1.25μs,刷新一帧 100 灯耗时≈3ms。

4、常见踩坑

  1. 颜色反:红绿颠倒→ 协议是 GRB,代码写成 RGB 顺序。
  2. 灯乱闪、杂色:主控与灯条没有共地;数据线无限流电阻;电源纹波大。
  3. 后面的灯不亮:DOUT 接反;电源压降过大。
  4. 3.3V 单片机直接驱动长灯条不稳定:最好加电平转换,短距离 470Ω 电阻可以凑合。
  5. RESET 时间不足:复位低电平太短,灯无法锁存颜色。

5、与普通模拟 RGB 灯条区别

表格

项目WS2812B 数字 RGB 灯条普通模拟 RGB 灯条(共阳 / 共阴)
控制线1 根 DATA 信号线R/G/B 3 根 PWM 线
单点控制每一颗灯可以独立不同颜色整条灯条所有灯颜色必须完全一样,无法单点控色
芯片每灯内置驱动 IC无芯片,外部 MOS 管驱动
协议WS2812B 单总线时序普通 PWM,无协议
灯珠数量可几十上百颗级联PWM 引脚数量限制灯条
供电5V12V 居多

6、简单示例逻辑(伪代码)

plaintext

// 设置第0颗灯红色:GRB,G=0,R=255,B=0 led_data[0] = {0, 255, 0}; // G R B send_ws2812(led_data, led_count); //逐bit输出时序 send_reset(); //拉低>=50us锁存输出

补充硬件小提示

  • 数据线:DIN 串300‑470Ω 电阻,靠近灯条 DIN 端;
  • 电源输入端并联1000μF 电解电容,吸收上电浪涌,防止烧毁灯珠;
  • 禁止热插拔灯条,带电插拔极易烧 WS2812B。
返回列表