5.3 基于Arduino的电路及程序设计
5.3.1 电力,你要hold住
驱动盖革计数管,需要使用几百伏的高压,具体电压需要查看与管子配套的参数手册。因为仅需要微弱的电流,常用的产生高压的方式主要有以下两种。
自激式升压电路。
NE555构成多谐振荡器,驱动变压器升压。
从使用的角度出发,笔者更倾向于采用“自激式升压电路”,主要因为其体积小、电路结构简单、容易从网上直接购买。笔者解剖了一只从网络上购买的采用自激升压方式的升压模块,其实物图、原理图分别如图5.7中(A)、(B)所示。
图5.7 升压模块
升压模块采用自激振荡升压方式,其中R1和L2提供VT1的基极电流。变压器的3个绕组中,L1、L2同为45圈,L3为1200圈。线圈L3通过感应获得电压,通过快恢复二极管FR107整流,并通过电容C1滤波;L3同时又构成了线圈的反馈回路。
为了能hold住输出电压,笔者在末端串联了两个稳压二极管lN5388(200V/5W),完美了!
当然,升压电路也可充分利用从液晶显示器拆解出来的升压模块、电蚊拍升压模块等。只要稳压后的电压能够符合要求即可,这里就不详细介绍了。
5.3.2 整形,脉冲可以更美的
在前面的介绍中,我们已经通过示波器看到了盖革管输出的脉冲为尖脉冲(Vpp,即峰峰值,约为6.64V)。
考虑到让脉冲可以完美,且在盖革管的输出与Arduino的输入之间形成隔离,有效保护Arduino的I/O口,电路中使用了CD4049的两个非门对尖脉冲进行整形。
通过示波器观察到的整形前后的脉冲对比,如图5.8所示。
图5.8 采用CD4049整形后的脉冲
5.3.3 Arduino闪亮登场
Arduino是一个开放的平台,包括一系列简单易用的控制板以及一个软件开发环境。Arduino将很多硬件底层的操作进行了封装,形成了一个个可供调用的库,这对于从事行业软件架构师的我来说,真是莫大的幸福。
Arduino之所以“这样红”,就是因为DlYer可以不关注硬件的细节(烦人的时序、底层的寄存器操作等),而将主要的精力集中在应用的软件设计上。
Arduino的控制板根据使用场合的不同,又分为Arduino Standard(Duemilanove、Uno均属于此列)、Arduino Nano、Arduino Mega(Mega1280、Mega2560均属于此列)等。本次DIY之旅,我们选用Arduino Duemilanove作为控制板。
Arduino Duemilanove控制板提供14个数字口(0~13),其中可用于处理外部中断端口为数字口2(INT 0)和数字口3(INT 1)。
对盖革管的脉冲进行计数,我们使用Arduino提供的外部中断接口INT 1,即数字口3。
为了直观显示盖革管的计数结果,我们采用常用的LCD 1602作为探测仪显示单元。LCD 1602采用四线驱动的方式,分别使用Arduino的数字口4、数字口5、数字口6、数字口7、数字口11、数字口12。
由于盖革脉冲计数具有离散性,对一段时间内(1min、5min)的盖革脉冲取平均值,将使得测量结果更为科学和准确。这里,我们采用一个按钮对“实时”(6s刷新)、“1min”、“5min”三种统计方式进行切换显示。按钮的响应,使用Arduino提供的外部中断接口INT 0,即数字口2。
5.3.4 Arduino扩展板的制作
高压及整形电路部分采用万能板进行焊接,并以Arduino扩展板的形式插到Arduino控制板上。
所有与外部器件的连接均采用接头方式,以方便拔插,这其中包括:扩展板与液晶屏的连接、扩展板与盖革管的连接、扩展板与按钮的连接、电池与开关的连接。
扩展板原理图,如图5.9所示。
图5.9 扩展板原理图
需要特别指出的是,万用板的走线不仅是一门技术,更是一门艺术。如何摆放元器件,才能使连线最短,且不需要“飞线”,是采用万用板电路设计过程中,需要反复仔细考虑的。
关于万用板的走线,大概有以下3种方式。
飞线法:一堆导线在万用板上“飞来飞去”,既不美观,也影响调试,笔者强烈不推荐。
锡接走线法:采用焊锡代替导线。不少“大虾”推荐过这个方法,相比“飞线法”,此方法简洁、美观。笔者之前也试验过,但在使用过程中发现,一方面需要大量堆积焊锡,造成一种浪费;另一方面,由于采用焊锡走线,也容易使焊盘和元器件长时间受热。以笔者个人的观点,也不建议采用这种方式。
硬质导线走线法:这种叫法是笔者创造的。笔者使用电脑网线,剥去塑料皮,裁剪并弯曲成需要连线的路径,紧贴焊盘进行走线焊接。使用这种方法,一方面可以继承“焊锡走线法”的美观,另一方面可以克服“锡接走线法”受热时间长的缺点。
采用“硬质导线走线法”对万用板进行焊接后的实物图如图5.10所示。元器件摆放布局如图5.11所示。
图5.10 扩展板布线
图5.11 扩展板元器件摆放
扩展板制作完成后,可以直接插接到Arduino主板上,实物如图5.12所示。
图5.12 扩展板与Arduino插接实物图
5.3.5 程序,可以很简单
程序要完成的任务如下。
对来自反向器整形后的盖革管脉冲进行计数。
对一段时间(6s、1min、5min)的盖革脉冲计算平均值。
对盖革脉冲与辐射剂量的换算。
控制LCD1602的显示。
响应按钮,实现“实时”、“1min”、“5min”三种显示模式的循环切换。
程序主流程图如图5.13所示。
图5.13 程序流程图
5.3.6 Arduino的供电
装置供电的问题,是DIY中最容易被忽视的,看似简单,却有大学问。合适的电压是保证Arduino控制板正常运转的前提。
考虑到易于更换的因素,笔者没有选择12860充电电池,而选用了电池盒与6节5号干电池对核辐射探测器进行供电。