51单片机驱动ws2812b彩灯模块

      ws2812b的驱动时序对单片机运行速度要求较高,需要ns级别的时序,普通的51单片机基本很难完成控制。我采用STC15系列的单片机,其处理速度比普通51单片机速度更快,虽然无法精准完成ws2812b的最优典型值,但基本完成能够驱动。

       测试采用stc15f2k60s2单片机,使用内部晶振11.0592MHz。

      我将驱动程序封装成库函数形式,如果需要即可按照下面方式去使用。下载库文件:ws2812b.c和ws2812b.h文件

     链接:https://pan.baidu.com/s/1cWxaVY1Zgc9X7HH_KtqYOQ?pwd=1234

      提取码:1234

     使用步骤:

 1、将ws2812b.c和ws2812b.h文件放在到你的工程项目下,并在keil添加ws2812b.c文件。

2、修改ws2812b.c文件

图片

修改红色方框位置,连接管脚和彩灯板彩灯数量,使其跟你的硬件对应。

3、在要调用的文件中包含ws2812b.h

图片

4、使用方法如下,在主函数(或调用函数)使用下面两个函数即可。

  WS2812B_Set_Color_Light(1,RED,20);//设置第一颗灯,红色,亮度20(亮度值范围0-100)(颜色值范围0-255)

  WS2812B_Set_Color_Light(2,0,0,50,20);//设置第二颗灯,绿色值0,红色值0,蓝色值50,亮度20

  WS2812B_Set_Color_Light(3,50,0,0,40);//设置第三颗灯,绿色值50,红色值0,蓝色值0,亮度40

  WS2812B_Send_All();//使发送设置,使灯点亮(生效)

注意:WS2812B_Set_Color_Light(2,0,0,50,20)函数第一个参数是灯号,第二个参数绿色值,第三个参数红色值,第四个参数蓝色值,第五个参数是亮度。颜色值三个参数也可以直接用 GREEN、RED、 BLUE 、YELLOW、PURPLE、 CYAN 、WHITE这7个替换。

如果需要熄灭灯,则颜色值给0,如:

        WS2812B_Set_Color_Light(3,0,0,0,20);

不管点亮还是熄灭,设置完之后,后面一定要加WS2812B_Send_All();这句,才能使点灯(灭灯)生效。

接线:彩灯模块VCC需要连接5V(或3.3V),GND需要接地,IN(或DIN)管脚按照默认程序时是接P1.0,可修改程序更换管脚。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值