VFD-RGB桌面时钟
1. 前言
本项目已经同步到立创开源社区:https://oshwhub.com/yc_chen/zyc-vfd-shi-zhong
这是使用一个使用国产VFD屏制作的桌面RGB时钟摆件,主控采用STC8H+PT6315驱动IC进行的简单实现。
本工程涉及到元器件均可以网购买到。
VFD屏幕购买链接: https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-25232060258.17.769a533fKv2O3o&id=754675463755
10uH电感购买链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.616b2e8dWlOijY&id=580783143592&_u=91v3prvp5785
常闭按钮/Type-C6P购买链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.28932e8dJLBgiQ&id=536649527178&_u=91v3prvp1f37
亚克力图纸两套在工程文件有,复刻的话可以导出DXF文件。
用户手册文档:http://doc.saisaiwa.com/vfd-zyc-desc/
2. 硬件设计
本工程文件由立创专业版打开,提供两套不同的版本设计均在工程里直接打开就可以看的到。
版本1.0: 无RGB设计,MT3608驱动方案,单片机采用QFN封装的STC8H1K08_36I(个人认为这个封装超级好焊), Falsh用的满满的一行代码都写不进去,9级优化完全榨干。
版本1.1:RGB设计,SGM6601YTN5G/TR方案,单片机采用TSSOP20封装的STC8H1K17_36I。
事实证明-30V和-35V亮度没啥区别,这个屏就这样了。但是-28V的亮度就我不能接受,看你们选择。
注意MT3608我超过28V到30V使用了24小时不间断7天没什么问题,哈哈,各位看你的选择吧。毕竟VFD的功耗基本在灯丝上。
板载支持的外设:
RX8025T高精度实时时钟
WS2812B(1515封装)的两颗RGB
三个用户按键
2.1 使用介绍(重要)
2.1.1 如何切换显示年月日/时分秒?
按下K1按键切换
2.1.2 如何设置时间?
设置年月日的方法,按下K1切换到年月日的显示,接下来长按M按钮持续至少2秒松开。K1和K2则是增加或减少,M则是切换设置项。当设置完成再次长按M按键至少两秒即可保存并退出。
设置时分秒的方法,按下K1切换到时分秒的显示,接下来长按M按钮持续至少2秒松开。K1和K2则是增加或减少,M则是切换设置项。当设置完成再次长按M按键至少两秒即可保存并退出。
2.1.3 如何调整VFD的亮度?
按K2按钮调整
2.1.4 如何开启/关闭 ACG动画
按M按钮开启或者关闭
2.1.5 如何关闭/开启RGB或更改特效
长按K2按钮关闭RGB并且同时更改RGB的特效,在下次打开RGB的时候生效。开启RGB也是长按K2。
3. 代码
项目支持Keil5 与 Vscode的EIED插件。
作者我不习惯用Keil写代码,所以我是使用Vscode写代码然后使用Keil的编译。电脑环境Macos+Win虚拟机
3.1. 源码大概逻辑
三个用户按键由定时器1以固定1ms的频率进行扫描,支持检测按下,松开与长按的逻辑。 当检测到任何一个按键的事件触发了将使用Flag标记位进行标记,不在中断函数中执行耗时的操作。
设置定时器0作为系统的滴答定时器设置不可屏蔽的自动重装载模式,1毫秒一次中断对uint32_t的变量加1一次,主函数中不使用软件延时函数进行延时,我们将使用值值的比较法进行延时这样大大增加效率。
主函数中,将会对每个按钮的flag进行判断检测是否触发按键的事件然后执行对应的耗时逻辑。
当然对VFD的刷新、8025T时间的读取,ACG动画、RGB特效刷新、时间的保存、屏幕保护程序。这些都在主函数中进行值值的比较法进行判断是否到了该执行的时刻。
3.2. STC烧录设置(重要)
STC8H1K08无RGB版本的时钟频率选择22.1184Mhz
STC8H1K17 RGB版本时钟频率选择24Mhz
3.3 代码仓库
Github:https://github.com/ccy-studio/CCY-VFD-ZYC
RGB版本的请选择分支: release-1.1
无RGB的版本请选择分支: release-1.0
评论区