WS2812B电气灯 v1.1
前言
最早我是在B站上刷到这类视频的,这种灯成本不高,而且设计也相对简单,非常适合上手。但是不同于这些视频中的单色电气灯,本项目计划使用ESP-8266单片机搭配WS2812灯珠设计一款可编程电气灯。
初期设计
电气灯外壳使用250*80*70的防水电源盒,WS2812B灯珠则采用已经焊接好的灯带或灯板。ESP8266安装在灯盒背部主控PCB上,主控PCB示意图如下。具体文件在文章末尾给出。
丝印 | 元件 | 功能 |
---|---|---|
USB-C | USB-C口母座 | 电源供电 |
POWER | 船型开关 | 总电源开关 |
MODE | 轻触开关 | 切换工作模式(常亮、呼吸、渐变……) |
COLOR | 轻触开关 | 切换颜色 |
DEBUG | USB-C口母座 | 调试ESP-8266 |
VIBRA ON | 小型拨动开关 | 开关震动切换颜色功能 |
螺丝使用M3螺丝,外壳开孔尺寸 90*50.
ws2812使用六块8灯一组的长条形灯板,每三块板串联在一起,分别放在外壳的上部和下部,上下灯组的信号采用并联方式连接到ESP8266的D2引脚上。
这样上下对称的排列方式可以很好的保证发出光颜色的均匀性。
此外,在主控pcb上预留了可供烧录程序的DEBUG接口,可以在不拆开外壳的情况下方便地进行数据烧写,大大提高了拓展性。
ESP8266是具有wifi功能的模块,因此有关于wifi的拓展功能也非常丰富,比如通过手机控制调色、通过当地天气数据自动改变灯的颜色、在不同的节日显示不同的效果……目前我还打算将这个灯连入我的家庭服务器(这个大工程我之后也会开一篇blog),来提供更多有趣的功能。
材料准备
序号 | 材料 | 数量 | 价格(供参考) | 备注 |
---|---|---|---|---|
1 | 透明盖防水盒250*80*70 | 1 | 11.87+6(工艺费) | 背板开250*80*70的方孔 |
2 | pp导光板250*80*70 | 1 | 5.00 | |
3 | 8位ws2812灯板 | 6 | 10.50 | |
4 | 嘉立创PCB板 | 1 | 0 | |
5 | 1*15p排母 | 4 | 1.00 | |
6 | 4pType-C母座 | 2 | 3.2 | |
7 | 自复位按钮 | 2 | 0.8 | |
8 | 船型开关 | 1 | 0.28 | |
9 | M3螺柱螺母 | 若干 | 0.50 | |
10 | 跳线 | 若干 | 0.50 | |
11 | sw18015p振动开关 | 1 | 0.20 | |
12 | SS12D07VG3 3mm开关 | 2 | 0.12 | |
13 | ESP8266开发板 | 1 | 10.00 | |
14 | 贴纸 | - | - | |
合计 | 49.97 |
材料组装
ws2812灯板焊接
用跳线将三块灯板的VCC和GND分别焊在一起,将前一块板的DO与下一块板的DI焊接在一起,留出第一块版VCC,GND,DI的接线端子。另外三块板也是同样的操作。
GND只需焊接一个焊盘即可
主控板组装
依次在电路板指定位置焊上排母、电源输入±、船型开关、两个按钮、两个拨动开关、振动开关、两组灯板。
取一根microUSB数据线的公口,将四根线和DEBUG母座焊接,最后插上ESP8266.
外壳组装
用螺柱螺母将主控板固定在外壳背部开槽处,用胶水将两组灯板分别粘在外壳上下。
用美工刀在导光板上切出外壳的螺丝座,将导光板压在透明盖和底壳之间。
程序烧录
有关Arduino IDE的使用请参考我之前有关ESP8266的博客
安装adafruit_neopixel库
搜索adafruit_neopixel库,安装即可。
程序
固定的引脚定义:
D2-数据输出引脚
D3,D4-按钮上升沿控制中断
下面提供了一个简单的Rainbow灯效。
1 |
|
未完待续
PCB文件: