基于STM32F103C8T6的蓝牙音乐氛围灯(三)WS2812灯带简介

WS2812灯带简介
WS2812网上搜资料一大堆,我也是初学,就只是讲一下几个用到的要点。
1、WS2812一个灯珠的颜色是咋来的。
三原色原理,但是注意三原色一般顺序是RGB,而WS2812接收颜色顺序是GRB,所以编写代码的时候要注意编写一个函数用于把RGB的数据格式给换成GRB,思路是G<<16||R<<8||B。具体代码CSDN里一大堆,我转载的话还要找出处,嫌麻烦。大家自己去搜。
RGB用24bit表示,每个颜色8bit,00表示最暗,FF表示最亮。
24bit由高到低,高位先发。
2、WS2812灯带数据传输
一个灯珠收到24bit数据后,剩下的数据传到后面。所以1个灯珠24bit,60个灯珠就需要60*24bit。
3、WS2812读取数据的原理
WS2812读1个bit是0还是1,是根据占空比来判断的。也就是无论是0还是1,都是由一个PWM波构成。0的占空比大概是32%,1的占空比大概是78%。
同时需要注意的是数据发送速度可达800Kbps,在设置PWM的时候,要注意速度太快会导致WS2812读取数据出错。
4、WS2812读取新的颜色数据需要先给复位码
举个例子,我现在有一个灯珠,我给了三个24bit的颜色数据,如果我连续将这些数据给这个灯珠,它会留下第一个24bit数据,而将后面的2个24bit数据继续传输(尽管它后面什么都没有,它依然会把数据传走)。而如果我在每个24bit数据之间加入复位码,灯珠就知道这个数据是给它的,它就会读取并显示出来。所以我们要注意,在编写颜色数据给灯珠时,要特别强制在每一次传输之前加一个复位码,这样灯珠就明白这是一次新的数据了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值