
WS2812 LED矩阵板
简介
基于WS2812的LED矩阵灯板, 可以使用按键等控制多种灯效,支持亮度的增加或者降低。 同时支持切换灯效。支持USB下载。串口通讯,接口兼容STC-LINK
简介:基于WS2812的LED矩阵灯板, 可以使用按键等控制多种灯效,支持亮度的增加或者降低。 同时支持切换灯效。支持USB下载。串口通讯,接口兼容STC-LINK开源协议
:GPL 3.0
描述
设计背景
WS2812是一款经典的RGB LED灯,通过单线进行通讯。只需要使用IO来控制1码和一码的时序生成便可控制LED显示不同的颜色。 通过不同的组合等则最多可以显示255 * 255 * 255种颜色。AI8051U是STC89C51系列的最新升级款MCU,支持8位和32位模式。 我们可以使用8051U直接使用IO驱动WS2812。
主要物料如下
- WS2812 * 16
- AI8051U
- 按键若干 * 5
模块电路详解
电源滤波和分压电路
电源LDO采用的是AMS1117-5.0 输出的, 采用了两个47UF的电容来进行滤波,并且输出到系统主电源。其中采用了两个电阻组成了一个分压电路用于ADC测试生成随机数。
核心下载和复位电路(支持USB下载)
上述是最小系统的核心电路。其中引出了P3.0 和 P3.1 作为UART1,同时可以和STC-LINK进行通讯。进行下载。也可以按下reset键然后使用USB下载。 这里需要注意的是, RESET键的默认选项是IO, 如果需要设置成复位的按键的时候,需要使用STC-ISP下载一次之后,切换功能脚即可正常复位。如下图所示,取消下述勾选。
按键电路
四个独立的IO按键可以用于下载控制LED灯效果或者亮度使用,其中UP button还可以在上电前保持低电平使其单片机进入HID模式进行下载代码。
TYPE-C供电和UART2
这里的TYPE-C需要和单片机的TX和RX连接,这里需要注意的一点是。 如果单片机想要使用RESET切换到HID模式(USB)下载模式。不要在串口1上接外部设备,负责复位后可能出现无法切换到HID模式。
效果展示
彩虹
全屏渐变
追逐效果
随机闪烁
和全屏填色追逐。由于相机的原因,上述的拍摄出来不是很好看。 当然你也可以发挥自己的创意来DIY自己的特效。 目前的程序代码支持左右键调整特效,上下键调整灯光的亮度。(程序在主频24MHZ下运行良好)
代码核心部分讲解
ws2812的核心在于如何控制好时序的生成, 即使0码和1码处于一个比较平均的时间区间内,这样的话即使控制多个LED也不会出现错误闪烁的情况。因此这里的0码和1码是我通过逻辑分析仪测量出来的具体时间。通过宏定义的方式来进行控制。
之后便可以通过发送不同的0和1来控制LED的点亮。
主程序
主程序中会根据按键的状态来调整LED的亮度或者效果等,如果想要拓展自己的灯效的话,可以在下述函数中进行拓展。
设计图

BOM


评论