WS2812B全彩灯板

前段时间玩树莓派的时候突然发现个好玩的东西,WS2812,一个数字控制的全彩LED。

之前玩LED的时候都是四个引脚,RGB三个通道都得占一个引脚,如果做矩阵的话恶心死人,要加各种的锁存,所以一直没有用过多色LED矩阵。

偶然的机会,看到了网上一朋友用数字控制的全彩LED,只占用一个引脚就能控制三个颜色,更重要的是,如果做矩阵,也是一个引脚搞定!牛的一逼啊!

先给大家看看资料

WS2812B全彩灯板_第1张图片

 

很多种型号,我用的是比较小的那种,2020的封装,其他的引脚是一样的

VSS:供电引脚

VDD:信号电源接地引脚

DIN:控制数字输入引脚

DOUT:控制信号输出引脚

电源电压:+3.5~+5.5V

逻辑输入电压:-0.5~+0.5V

输入电流:1μA

LED特性

WS2812B全彩灯板_第2张图片

 

用的时候直接把她们串联起来,DOUT连接DIN,没试过上限多少,我的320个串联毫无压力,秒刷!网上有1024个串联的,刷新毫无压力。

操作的时候基本就是DIN引脚给输入数字信号:

WS2812B全彩灯板_第3张图片

 

T0H

0码高电平时间

0.35us

±150ns

T0L

0码低电平时间

0.9us

±150ns

T1H

1码高电平时间

0.9us

±150ns

T1L

1码低电平时间

0.35us

±150ns

RET

帧单位,低电平时间

>50us

有的等资料说>300us

 

先给个复位信号,然后依次是每个灯的GRB数据,每个灯3个字节(24位,高位在前)

 

比如你又16个彩灯相连接,发数据的时候先发送一个复位信号,然后连续发送3×16字节的数据即可,中间不要发送其他内容,每位之间发送数据时间没有严格规定,但最好是一次性发完,发的时候把中断关了,否则有可能会出问题。

 

以上是硬件资料。

我用的是2020的封装,非常小2mm×2mm的,做出来20cm×8cm的板子上集成了320个LED,每个LED配一个电容,小两千个焊点。

WS2812B全彩灯板_第4张图片

 

每5平方毫米就6个焊点,手工焊是不可能了,所以聪明的我在开板子的时候就顺便开了张钢网,板子+钢网,一共127包邮。

回来后刷焊锡,然后就是痛苦的过程,要一个个把元件摆上去,摆放部分耗时3:30,中午饭都没顾上吃。

WS2812B全彩灯板_第5张图片

 

第一次搞的时候,摆了2行才发现,LED全都放翻了,于是乎,重新刷焊锡膏返工……

第二次搞了四行了,照顾孩子吃饭,结果一不小心蹭了一大块,已经没有挽救的必要了,重新刷焊锡膏……

第三次把自己关在小屋里,老老实实干了两个多小时,终于搞定……

WS2812B全彩灯板_第6张图片

 

为此买的焊锡台,220°上焊台,开始的时候做试验,卖家告诉我得430°才行,于是乎——就特么糊了!

 

WS2812B全彩灯板_第7张图片

焊完之后上机测试,发现第二行有个坏的……

WS2812B全彩灯板_第8张图片

 

返工,好在只有那一个LED是有问题的,更换之后全部点亮

WS2812B全彩灯板_第9张图片

 

测试程序用的是Arduino,有现成的库可用,FastLED,我博客中有这个库的解读,有兴趣的可以看看。

https://blog.csdn.net/suolong123/article/details/103768985

但是用Arduino显然无法带的动这么大块板子,UNO的内存不够用,需要换更牛叉的,于是乎,我看中了STM32,STM32F103ZET6,搭载RT-thread系统,跑的屌屌的。

 

 

WS2812B全彩灯板_第10张图片

WS2812B全彩灯板_第11张图片

上面的一块亚克力板是从广告店要的废品,本来是想买一小块的,但是人家是按平米卖的,整块板子2米×2米的,好几百,吓人啊……

某宝上买了几个小块的用,但是效果不好,需要的规格是:茶色/黑色透明板,单面磨砂,厚度2mm,差一点都不行,效果low的不能要。某宝只有透明不带磨砂的,要不就是不透明的,放上后看不出方格的效果,透过去直接看到灯,很难看。

亚力克板下面加个个光栅,否则看上去就是一片光,不是矩形块,颜色也比较模糊。

 

成品支持时钟、闹钟、收音机(RDA5807M模块)、天气、HTTP控制、蓝牙控制,板子提供了一个接口,可以通过蓝牙或者HTTP方式改变灯板显示内容,连接WIFI后可以自己拉取天气信息,和文章阅读量一类的数据。本来想加上蓝牙音箱的,但是能力有限,没玩过这个,就没加。也本来想通过蓝牙手柄控制灯板玩小游戏呢,但是后来没兴趣了,就没做。

 

费用部分:

光栅:在某宝找的未来工厂3D打印,30块钱,但得再加35的邮费。

PCB+钢网:127包邮到家,一共5块测试版。

LED:2020封装,320个(建议多买些冗余),某报价0.23元/个,共计76.3元。

电容:0603 104 100NF,400个7.8元

主板:STM32F103ZET6(F103其他型号的也行,当时抽风按照最大号的开的板),七七八八算下来56块左右。

基本就这些吧。

PCB板和光栅的3D文件可以免费共享给大家,有需要的留下邮箱。

代码有两个版本,一个是在RT-thread上写的,一版是Micropython写的,实现了LED库,支持基本绘图和英文显示。代码还在整理中,过段时间把源码GitHub分享给大家。

你可能感兴趣的:(STM32,嵌入式,单片机,stm32)