DIY一个基于IV-21的VFD管的数字时钟方案
发布时间:2019-09-29
分享到:
DIY一个基于IV-21的VFD管的数字时钟方案
发布时间:2019-09-29
分享到:

我已经将这可爱的iv-21 8位数vfd管用一段时间,非常炫酷,所以我认为在它们周围设计一个小型台式时钟会很有趣。

本文我会主要介绍下这个项目的一些工作原理。包括软件硬件。该软件正在进行一些主要任务,所有这些任务必须同时运行。首先,atmega328P必须为电子管产生更高的电压,并使用运行在〜62.5kHz的timer1来执行此操作(将占空比从50-95%调整将分别将开路电压从〜30-120V提升)。幸运的是,负载(vfd管)在运行期间不会真正发生很大变化,因此我只运行了升压转换器开环,尽管通过向中断中添加一些代码来关闭环路非常简单。

另外,我们需要一种自动将多路复用更新为所有数字的方法。这是在配置为以2kHz触发的timer2中断中完成的。在此中断中,我们做了几件事。首先,类似于我的单词和离散的8位LED时钟,该中断将在每次迭代中逐步经过一位,并设置要发送的正确段。数据通过SPI外设串行发送,因此我们不必浪费时间手动敲打引脚来发送所需的20位以更新下一位。实际上奇怪的是,由于MCU一次只处理8位spi数据包,我们最终不得不发送3个字节(24位),而前4位最终被丢弃。

因此,现在我们有高压和数据流向电子管驱动器。我们剩下要做的就是读取按钮输入,与实时时钟对话,并在按下按钮时发出哔哔声/哔声。我最初想使用timer0生成可调节频率的蜂鸣声,但发现那是arduino库用来生成延迟的原因,弄乱它会有些烦人。因此,相反,我只是寻找一个可以设置任何功能来控制蜂鸣器的蜂鸣器标志,如果设置了该标志,则在中断中它将切换蜂鸣器引脚。由于它只能在每个中断周期内切换一次,因此频率最终是中断频率的一半,即1kHz(一个适当的声音,但对于哔哔声而言却不太讨厌)。

实时时钟也可以通过SPI控制,但是我对此有点懒,只是包含了我之前编写的用于信号发信号的库文件(我当然可以与max6921驱动器芯片共享数据和时钟。并给rtc一个单独的芯片选择)。我们有很多免费的大头针,所以为什么不呢。

对于按钮引脚,我想到了一个单独的引脚更改中断来读取它们,但我只是简单地重用定时器中断以2kHz的频率轮询按钮并设置全局标志,任何其他功能都可以使用该标志来响应按钮按下。此外,在按下蜂鸣器代码期间,还会在中断中的蜂鸣器代码中读取按钮标志,以便在按下任何按钮以获得用户反馈时发出蜂鸣声。

因此,这就是软件方面的所有内容。我发现了一个主要错误,那里似乎总是设置了数字0的段A,并且已经在中断中将其跟踪到显示多路复用器代码,因此,一旦有时间,我将对其进行修复。

奇怪的是,仅将SPI数据包的第一个字节设置为数字0(此处为0xFF,但应为0x00)。无论如何,一旦我解决了这个错误,我便会将所有设计文件上传到项目页面。

硬件

该项目的硬件要求非常简单:两个按钮用于设置时间,一个小的扬声器用于发出哔哔声,并可能在将来增加警报功能,板载软件可控制的“高压”升压转换器可从5V产生约30-70V, USB微功率输入,电池支持的实时时钟以及软件可控的直流灯丝驱动器/驱动器消隐。过去,我使用较大的IV-18管做过相同的时钟,而PCB是通过手工布线在原型板上完成的,但这一次我想要的是看起来更专业的东西。

该设计包括两个板。第一个是包含所有电子设备的主板,以保持时间,生成必要的电子管驱动电压并控制显示屏的所有多路复用段。我想将电路板保持小巧,单面以便于组装,同时又不要对微观的表面贴装元件感到迷惑。数字器件大部分用于表面安装,但升压转换器组件是通孔的,并且间距适当,以便于更换或寻找合适的替代品。所有低压物品都凝结在左侧,而高压物品则在右侧,而集管则在末端。我选择只做直流灯丝驱动,因为我过去对直流造成的亮度梯度的经验不是 与转移到交流驱动器会增加的复杂性相比,这是很糟糕的(尤其是对于像这样的小管子)。这是我确定的电路和布局:

 

第二块板只是一条布线通道,允许将vfd安装在主板上方,并通过标准的0.1英寸排针和母孔进行连接,以便于更换(以防万一管烧坏或遇到不幸的末端)经过粗糙的颠簸或跌落之后)。如下所示:

我实际上度过了一段有趣的时间,想出一种简单的方法来计算径向垫的位置。由于Eagle用笛卡尔坐标完成所有操作,因此要使焊盘均匀地排列成圆形是容易做起来难的。我还不熟悉Eagle的脚本语言,因此我最终手动设置了每个键盘的坐标,但是为了让我的生活更轻松,我编写了一个快速的excel电子表格,如果您插入了x和y值,所需的销数,半径和角度间隔。嗯,我经常听到人们说,高中毕业后他们从不使用三角帆,但是现在这些方程式对我来说派上用场了!然后,您需要做的就是将输出的x和y坐标插入eagle的打击垫位置设置中,它们将完全对齐!

这个“计算器”最终变得非常有用,我肯定会在以后的项目中使用。我还打算使用各种管子DIY项目。

数字时钟方案电路还存在一些小问题。我不小心将c6(大电解电容)错误接线到了错误的点(紧接在开关晶体管之后,而不是5V输入DOH!),所以升压转换器无法升压。我切断了走线,然后轻松地从5V输入产生了100V以上的电压。我遇到的第二个问题是,我将max6921 hv驱动器芯片的消隐输入连接到atmega的miso引脚。这似乎没有问题,但是显然,当atmega配置为主SPI器件时,mico引脚被硬接线为输入,并且无法重新配置为用作输出。但我抬起了max6921引脚,并在atmega的开放A1输出引脚上连接了桥线,这样一切都OK了。

最后,在正确组装好所有硬件之后,我可以开始编写固件了,以下就是一个简短的演示和汇编视频,讲述了这个项目的硬件情况。

 

版权声明:Hackaday授权,电路城原创翻译视频,谢绝转载!

如果你也喜欢开源的项目,并想分享你自己开源的作品,为开源世界贡献你的力量!

视频内容投放通道:yanfen.mo@supplyframe.cn

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论