[应用相关] WS2812B灯带(单线归零码)

[复制链接]
2471|5
 楼主| tpgf 发表于 2023-7-7 17:07 | 显示全部楼层 |阅读模式
1. 简介
   WS2812B是一款全彩LED控制IC,单总线控制, 灯带上的每一位灯珠都可用编程控制全彩显示,通过单片机,我们可以实现任意数量任意颜色任意组合效果的炫彩灯光显示效果。
1527164a7d5aa5f2d3.png

2. 通信格式
1) 单线归零码
   数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅受限信号传输速度要求。

6172764a7d5b1264bd.png
   根据手册介绍,数据发送的顺序是GRB,高位先发。每8bit代表了WS2812B灯珠对此种颜色光发光的强度,故耀眼的绿、红、蓝纯色光对应十六进制的编码分别为:0xff0000(绿)、0x00ff00(红)、0x0000ff(蓝)。
2)数据编码
编码时序图:
9112764a7d5b7594cb.png
数据传输时间:
290364a7d5be15fb9.png

这里我们使用定时器来完成他的时序周期,如果有示波器的话,也可以通过延时来模拟周期。


3. WS2812B驱动
1) 查看驱动
   在公众号”IOT趣制作“中回复”0433“直接下载资源文件,然后在目录“.\常用模块资料\06-WS2812B灯带模块\WS2812B灯带模块-示例工程\HARDWARE\WS2812B”中的ws2812B.c和h文件是WS28B12B的驱动文件。
8712164a7d5c8c7a1b.png

在ws2812B.h文件中,可以对引脚、灯珠数量等进行修改配置。

6295564a7d5ce70a2e.png
2) 使用方法
PWM_WS2812B_Init(WS2812B_ARR);  //WS2812B初始化        
WS2812B_Reset();                //复位
PWM_WS2812B_Red(1);             //1个灯珠红灯
PWM_WS2812B_Green(1);            //1个灯珠绿灯
PWM_WS2812B_Blue(1);             //1个灯珠蓝灯


4. 示例工程
   打开目录“.\常用模块资料\06-WS2812B灯带模块\WS2812B灯带模块-示例工程\USER”下的KEIL工程
9136864a7d5d56b068.png

编译烧录运行,查看效果
2725664a7d5da46e5e.png
————————————————
版权声明:本文为CSDN博主「IOT趣制作」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43351158/article/details/130457096

Henryko 发表于 2023-7-7 22:40 | 显示全部楼层
这个是怎么实现单独控制的啊?
643757107 发表于 2023-7-9 17:59 | 显示全部楼层
这玩意儿貌似很好用。
643757107 发表于 2023-7-9 17:59 | 显示全部楼层
最近看到好多人用这个做项目
MessageRing 发表于 2023-7-9 22:41 | 显示全部楼层
如果是串着的话那是不是就不能单独改一个灯的颜色啊?
Undshing 发表于 2023-7-10 23:30 | 显示全部楼层
MessageRing 发表于 2023-7-9 22:41
如果是串着的话那是不是就不能单独改一个灯的颜色啊?

好像是可以寻址的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2384

主题

17635

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部