彩色灯珠WS2812B可以通过单线进行控制, 多个灯珠可以通过级联, 通过单片机的 一个 IO 口进行控制。 WS2812 三色通过 24 bit 进行设置, 每一种RGB的亮度都有 256 级可被设置。 所以总的颜色共有 2 的 24 次方中。 下面通过对 WS2812的工作电流波形进行测量, 观察其内部色彩驱动机理。 对工作电流采样使用一个电阻箱, 电阻箱的阻值设置在 10 到50欧姆, 通过测量 VCC端的波形, 可以获得 WS2812 的工作电流波形。 下面通过软件, 设置 WS2812 不同的颜色, ·观察它的电流不同的波形。
▲ 图1.1.1 设置绿色0x80电流波形
设置 WS2812 中的 G 的亮度为 0x80, 其它 R,B 亮度为 0。 采样电阻为 50欧姆, 这是测量到的电流波形。 可以看到 WS2812 的工作频率为 4.235 kHz。
▲ 图1.2.1 三种颜色设置为 0x40 对应的电流波形
这是设置 G,R两个 LED 都是 50% 的点亮, B关闭对应的电流波形。可以看到 G,R两个 LED 工作对应的相位不是同相的, 之间相差一定的相位。 这是将 RGB三个 LED的亮度都设置为 25%, 此时可以看到三个LED是轮流点亮。 这是设置为 12.5% 的亮度, 三个LED点亮对应的低电平脉冲之间相差 120°。 通过观察 WS2812 工作电压波形, 可以看到三个LED点亮之间相差 120度相位。
▲ 图1.2.2 三种颜色设置为 0x20 对应的电流波形
将三个通道亮度都设置为 0xff, 对应的电压波形是一条直线, ·此时三个 LED 都打开。 将三个LED 的亮度都设置为 0x80, 对应的工作电压波形。 可以看到三个 LED 之间有同时打开的重叠波形。 分别设置三个 LED 的亮度为 0x10, 0x20, 0x30, 这个电压波形可以看到他们之间明显的点亮时间长短差异, 另外点亮的在一个周期内存在着 120 度的相位差。 这种安排也可以最大可能减少工作电流的波动, 尽可能获得比较平稳的工作电流。
本文通过观察WS2812工作电流, 得到内部LED PWM 频率为 4.235 kHz。 三个LED点亮之间相差 120度。
使用STCF12驱动 W2812灯珠: https://blog.csdn.net/zhuoqingjoking97298/article/details/131349261
[2]WS2812B LED-V2.0 数据手册: https://d2j2m4p6r3pg95.cloudfront.net/module_files/led-cube/assets/datasheets/WS2812B.pdf
32位8051
* 会议时间:6月28日上午9点
* 腾讯会议:898-273-595 此号已确认
恭请贵校老师学生一起来聆听