
VFD-RGB桌面时钟-ZYC
简介
使用VFD屏上海中荧9位米字屏制作的RGB桌面炫酷时钟摆件
简介:使用VFD屏上海中荧9位米字屏制作的RGB桌面炫酷时钟摆件开源协议
:Public Domain
(未经作者授权,禁止转载)描述
VFD-炫酷RGB桌面时钟摆件
1. 前言
这是使用一个使用国产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文件或者一键使用立创面板打印服务
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特效刷新、时间的保存、屏幕保护程序。这些都在主函数中进行值值的比较法进行判断是否到了该执行的时刻。
这里我封装好的超级简单的API,如果您想实现自己的功能,那么可以直接调用gui.h的方法。
3.2. (HTML)字库生成工具
这里作者我使用原生HTML写了一个字库生成工具(JS用到了cdn在线库需要电脑联网才可以正常加载),在使用的时候只需打开这个后缀.html文件(注意如果打开乱码,请在UTF-8的编码下打开),您只需在浏览器内用鼠标点点得出你想要的图案,最后点击生成即可直接生成可直接配置在代码的字库uint32_t的值。
在字库获取的时候利用到ASCII的编码和数组的下标进行map转换,特殊不连续的符号就直接用给定下标返回了。
这里因为VFD屏有两种米字屏所以我写了两套字库数组,说实话写代码的时候就想骂人这vfd位的设计真是反人类。
3.3. STC烧录设置(重要)
- STC8H1K08无RGB版本的时钟频率选择22.1184Mhz
- STC8H1K17 RGB版本时钟频率选择24Mhz
3.4 代码仓库
Github:https://github.com/ccy-studio/CCY-VFD-ZYC
- RGB版本的请选择分支: release-1.1
- 无RGB的版本请选择分支: release-1.0
3.5 项目结构

4.图片欣赏
图列 | 图列 |
---|---|
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
5. 其他说明(实操经验)
螺柱规格:
- 单通螺柱 M2*11+4
- 双通螺柱 M2*5
- 平头十字 M2+5/M2+6
注意上面实用于亚克力厚度2mm和3mm厚度
固定条件:Type-C 6P立插高度7mm,亚克力厚度3mm,PCB厚度算1.5mm吧,单通螺柱为4mm的时候那么拧进去双通螺柱为4-1.5 = 2.5mm。
因为亚克力厚度3mm Type-c高度7mm如果正好到顶部平面那么双通的高度需要7-3 =4mm,又因为电池座也是高度4mm所以我们需要选择最小5mm高度的双通螺柱。平头十字螺丝拧进去多少同样可以使用减去亚克力的厚度算出。
在焊接Type-C6P直插的时候注意一定放中间焊接不然到时候安装亚克力的时候会有一点偏差,但也能装进去,不考虑完美的略过。
Design: SAISAIWA - 2023/12
Blog: saisaiwa.com
QQ交流群: 676436122
本源代码版权归 [saisaiwa] 所有。
未经版权所有者明确授权,不得将本代码的任何部分用于商业用途,包括但不限于出售、出租、许可或发布。
仅限个人学习、研究、非盈利性用途下使用。如果您有其他用途的需求,请联系 [yustart@foxmail.com] 进行授权。
在遵循以下条件的情况下,您可以自由修改、使用和分发本代码:
您必须保留此版权声明的所有内容。
您不得用于任何违法、滥用、恶意的活动。
您的使用不应损害任何个人、组织或作者的声誉。
作者不承担因使用本代码而产生的任何担保责任。作者对因使用本代码所导致的任何直接或间接损失不承担责任。
设计图

BOM


评论