软件开源 - 用STC单片机控制的LED雪花灯板
此LED雪花灯板采用STC15W24单片机作为控制器,通过编程驱动37个三色LED显示出不同的效果,在冬季尤其是节日里是个不错的装饰物,同时我们将PCB设计文件及单片机代码开源出来,方便爱好者自己动手DIY。
标签
嵌入式系统
单片机
显示
雪花灯板
LED
硬禾发布
更新2023-04-25
4057

此LED雪花灯板采用STC15W24单片机作为控制器,通过编程驱动37个三色LED显示出不同的效果,在冬季尤其是节日里是个不错的装饰物,同时我们将PCB设计文件及单片机代码开源出来,方便爱好者自己动手DIY。

FijgqlWKPJl-10km5bB65RyL8PdY

FsxbXsS3kkdO5Wq6uqP370UR2dZyFtXjkKoRurgSz7drAwNeLN4A3Ain

 

参考设计程序介绍

Ws2812.c

函数 功能
void ResetDataFlow(void)  复位,为下一次发送做准备
void SendOnePix(unsigned char *ptr)  发送一个像素点的24bit数据

 

Delay.c

函数  功能
void DelayMs(unsigned char m) 延时函数
void Delay100Ms(unsigned char m)  延时100ms子函数(晶振频率33MHz时)

Main.c

函数  功能
void Flash_WS2812(unsigned char *p)  整体闪烁,传递颜色参数
void LED_Water(unsigned char *p)  由内而外流水点亮
void LED_Water_Color(unsigned char *p  由内而外流水点亮,颜色变化
void LED_Single_Flower(void)  单圈单个灯绽放点亮
void Water_lamp(unsigned char *p)  按1-37顺序点亮
void DIY_SNOW(unsigned char *p) 由外向内,按照数组的颜色顺序显示,最多五个颜色
void Flower(void) 一圈一圈点亮
void Flower_In(void) 一圈圈逐步点亮(外内)
void Gradual_change(unsigned char *p)  渐变亮
void Breathing_WS2812(unsigned char level,unsigned char Color)  呼吸渐变,两个参数,第一个表示集中小颜色,第二个表示颜色
void WS2812_Close(void) 将37个灯全部熄灭
void WS2812_1_5Line(unsigned char *p,unsigned char line) 让其整圈一起点亮,传递两个参数,第一个参数为显示颜色,第二个参数是让第几圈点亮,圈数1-5
void WS2812_1_5Line_In(unsigned char *p,unsigned char line) 让其整圈一起点亮,内圈颜色保持不变,传递两个参数,第一个参数为显示颜色,第二个参数是让第几圈点亮,圈数1-5
void WS2812_1_5Line_Single(unsigned char *p,unsigned char line) 让对应圈的灯流水点亮,传递两个参数,第一个参数为显示颜色,第二个参数是让第几圈点亮,圈数1-5
void WS2812_LineIn_Single(unsigned char *p,unsigned char line) 对应圈数最外层流水,里面全部点亮。传递两个参数,第一个参数为显示颜色,第二个参数是让第几圈点亮,圈数2-5

 

WS2812点亮原理

FoRY2XxElFM17ipTa5mM4k3aPvyd

数据为单总线传输,当你连续给入数据的时候,第一个WS2812会“吃掉”24bit的数据,后面依次类推。从而使得每一个WS2812亮不一样的颜色。
程序的主要思想就是将点亮一个灯的程序封装为一个函数,然后点亮方式的程序也封装为一个函数。那么你看到的WS2812亮灭也就是不同的点亮方式的组合。再通过一个标志位来判断以什么方式亮灭。串口就是用来控制这个标志位的媒介。

附件下载
Snowflake_SCH.PDF
LED雪花板的原理图,PDF格式,用Altium Designer设计
带单片机8位全彩流水灯程序模板V1.0.zip
参考设计程序
WS2812B.pdf
LED灯WS2812B的数据手册(PDF)
团队介绍
硬禾工程师团队专注于基于FPGA和嵌入式系统学习平台的开发和生态系统的建设,在过去5年里成功推出的小脚丫FPGA学习平台被全国上百所高校采用于数字电路教学实践中,并一直积极推动开源、免费PCB设计工具KiCad在高校学生及硬件工程师中的应用。
团队成员
马熙飞
资深硬件工程师、技术专家。有9年工业级产品研发以及13年Altium公司技术专家的职业经历。精通Altium Designer软件的使用,有着丰富的电子产品工程开发和管理经验,以及电子产品的EMC设计经验。擅长PCB工具、系统化电子产品设计等方面教学。
马骥
现任南京沁恒微电子股份有限公司FAE(现场应用工程师),主要负责以太网芯片、蓝牙和单片机外设等器件的技术支持。本项目的代码由马骥同学在大四毕业前在硬禾实战营贡献。
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号