这两天心血来潮买了两块ws2812b的灯板来玩,宣传16w {MOD}全彩RGB,十分炫酷。买的两种板子都是同样的灯,区别在于一个是44一个是88的。
首次写好44的程序,接好电路5v供电,闪瞎狗眼,赶紧换到3.3v,也能够正常完美地工作,44的灯板测试完毕,再测试88的。由于ws2812b相当于一种另类的“串行”设备,而且只需要一个io口控制,这也就决定了程序上不用太大改动(详见数据手册),甚至88的可以直接用4*4的程序驱动(因为本质上是一串16或一串64个灯的灯条),只是只能控制前16个灯罢了。
接3.3v上电,前半段由蓝到绿渐变正常,到了黄 {MOD}红 {MOD}阶段开始不停亮灭闪烁,可以知道是红 {MOD}灯出问题了。鉴于一次坏16个灯的概率不大,检查接线后排除硬件问题;程序之前完美点亮了4*4的板子,也可以排除问题,最后剩下就是供电问题了。
首先想到的是笔记本USB口供电能力不足,换成了充电宝,但是并没有解决,再尝试换到5v供电,问题初步解决,就是又亮瞎了。。。。
下一步修改程序到64灯,同样的问题又出现了,也是在黄-红-粉之间亮灭闪烁,到了蓝 {MOD}就正常了。经测试,使用外部(非笔记本USB电源等)供电,5v可以带的动16个以上的灯,到32个灯就有点不行了(偶尔闪烁),更别说64个灯了。是否出问题跟灯的数量有很大关系,初步判断还是电源的原因。
根据热心群友建议,降低LED的亮度达到降低功耗的目的,试了一下还不错,关键是亮度变化并没有想象中的大,所以问题的解决方案就是降低亮度。