其实想做这个辉光钟有一段时间了,最初看到辉光管的时候就被这美丽的红晕所惊叹到了。可是处于价格以及很多方面的原因 一直没有时间/机会去实践。
我相信来看这篇文章的人,其中不乏有和我想法一样的——做一个送给ta。
一、初想
一切的开始都是从选择合适的辉光管开始, 这里我选择了前苏联产的IN-14 和 IN-18两种 打算做两种版本的。 因为学校提供了一部分资金,于是就有钱买了一些IN-18。 自己做的话建议国产的QS30-1 或者 苏联IN14 足够。
其次就是控制电路, 由于辉光管的发光原理【辉光放电效应】所以需要很高的电压才能点亮,这也是很多人放弃的原因 毕竟好几百伏电一下还是贼刺激的。
二、 升压电路
这部分既然之前认为是最难得部分, 那就先攻克最复杂的部分就好啦。 对于升压,第一反应是555控制一个,这可能是原始的方案。但是介于一方面打算长期用而不是试试,555显然有点太Crude了,还是用个带过流保护 专门的控制IC吧。 最早看到的MC34063,可能是比较便宜的解决方案了,但是听说有啸叫 我觉得还找一个比较安静的方案为好,毕竟要在家用 听着线圈嗡嗡叫体验可不好。其实除了这个声音之外,不太喜欢MC34063的另外有一个原因就是如果自己阅读DataSheet会发现这个IC只支持升压到40V,虽然可以通过PNP实现对MOSFET的控制,但是由于芯片本事不是Push-Pull 的 感觉效果应该不会太好。 最终决定是TPS62160, 德州仪器的升压控制模块,带过流保护等功能。 (其实建议如果只是做实验555足够了)
后来因为管子和零件到的比板子早,就先测试了一波。
拿到线圈之后用Arduino控制PWM信号升压
Spike高达200+V
管子点亮 没问题
关于升压电路后来的小插曲:
三、控制电路
考虑好升压之后那么就是做控制部分了,目前看到的STM32的方案占了不少部分,我呢选择了稍微老一些的ATMEGA2560作为主控芯片,一方面是自己因为做了几个3D打印机,对这个2560比较熟悉,还有就是希望将来比较容易重新编写程序,毕竟STM32需要单独的ISP下载器。 Mega2560经过Arduino bootstrap之后可以直接通过在板子上做一个USB 串口转换器就可以直接连接电脑修改程序。 至于怎么控制管子,其实从头到最后定方案一共考虑了三套方案吧(各有利弊吧,后面会说)
三(1)、使用IOExpander扩展Arduino的IO,每个数字针控制一个NPN三极管接地辉光管。
个人看来这个可能是最直接的 也是最消耗IO的方案,但是这个可能是写程序控制起来最容易,也是最有控制力的一个方案。 根据个人实验,辉光管在一定程度上对PWM信号是有反应的,在Duty Cycle非常低的时候(20% 在正常的2mA 负载 用QS30-1 测试)会出现变暗效果。 这个可以用来做渐变效果用。
注:这里的IOExpander可以用Shift Register代替
三(2)、使用BCD to Decimal 解码器。
这个解码器可能是在模拟时代经常用的一个工具了,用来实现从二进制4Bit 解码到 0-9的十进制数字, 因为要控制NPN管,所以选择High 输出的而不是需要输出的那一针拉低的版本。
其他部分和之前差不多,但是这个做渐变效果可能差一些,当然也不是不行,毕竟给芯片送0-9之外的数字会什么都不显示,所以这也是个不错的注意。相比上一个方案这个所占用的IO明显少很多,搭配一两个74HC595 Shift Register 使用完全可以使用ATMEGA328p控制。
三(3)、HV57708 高压Shift Register
这个芯片也是偶然的在严老师的博客上看到的,研究了一下数据表恍然大悟。 这里面的电路设计是很有意思的,毕竟芯片尽管高压也只能控制80V, 所以想实现对170V辉光电路的控制还是需要一些小技巧的。这个方案的最好处就是不需要使用那么多的三极管了,对焊接任务又减轻了许多。
四、画图
既然是要做一个像样的东西,那么显然在面包板上对付是不合适 也不现实的啦毕竟好多贴片元件。
最开始还真的走了不路,最开始受Arduino官方的图纸是用eagle绘制的影响,我也尝试了用Eagle制图。正好因为在学校,能获得免费的Autodesk正版。 第一次接触PCB设计,并不知道如何下手。 研究发现是先画原理图,然后根据生成出来的零件进行排版,最后排线(这部分可以用Auto router辅助一下 但是手动检查和调整还是必不可少的啦)喵~