前言
现在很多的高档数字万用表都具有rs232串行接口,万用表在实际测量电参数的同时把测量到的电参数按一定的通讯协议通过rs232串行接口传输到计算机,由计算机的上位机软件进行数据的实时、定时采集,利用计算机端的软件可以记录大量数据从而方便对一定时间段内的电参数监测分析,生成电参数变化曲线。
但是目前具有这种pc机采集记录功能的高档万用表价格昂贵,让很多人望而却步,在技术论坛上看到很多技术网友想自制类似功能的万用表,希望有人能制作出相关功能的电压表出来,提供自制资料供大家自己制作,以方便平时工作和学习的需求。由于自己本人的技术成长也是受益于网络的共享精神,是到自己回报网络和网友的时候了…
很多网友提出了相关的方案。其中的一个方案是通过单片机读取普通数字万用表的lcd液晶段码信息,就像读取led数码管的段码信息来处理,然后通过单片机进行数据转换发送到计算机端的软件,当然还得开发计算机端的软件。但是lcd液晶是交流信号驱动的,和用数字电平驱动的led数码管属于两种不同的显示设备,所以用单片机来读取lcd液晶的段码信息是不现实的,而且自己开发上位机软件的难度和工作量都较大,于是这个方案推翻了。当然这其中网友提出了很多可行的模块方案。
最后结合了所有的建议,还是决定采用带ad功能的单片机直接测量采集电参数,进行数据转换,然后看看能不能直接利用市面上现成的万用表的上位机软件进行数据的采集保存,这样可以缩小开发的周期和成本,但是想要利用现成的万用表上位机软件的话就涉及到通讯协议的问题了,厂家一般是不公开这些资料的。于是还是利用了网络强大的搜索功能,总算找到相关协议资料了…在此再次感谢网络的共享精神,感谢《我爱电子制作网》
http://www.5iediy.com 的作者何光站长,原来何光站长已经制作出相关功能的串口电压表,并且在其网站上公布了相关万用表软件和协议文件,总共提供了2个万用表厂家的软件和协议,其中优利德厂家开发的ut60a数字万用表软件功能比较完善。本想直接推荐大家按此资料自制的,但最后本人还是决定在此基础进行功能的增强和完善,算是一个改进版本吧,相信何光站长也会赞同的。好了,下面就开始吧…
由于没有数码相机,所以暂时还没能把实际做好的串口电压表呈现给大家,是用万能板焊接的,会尽快落实照片的问题,请谅解
串口电压表基本工作流程:
atmega48单片机每0.5秒对输入到adc0口的直流电压(0 - 4v直流电压)进行ad转换,为了保证采集到的电压值的稳定性,单片机每次ad转换的时候连续读取8次的电压值,然后去掉其中的一个最大值和一个最小值再求平均值,在把得到的电压平均值进行bcd码转换,把bcd码数据送到数码管进行刷新显示,既每0.5秒更新一次当前电压值。
当把pd6口的s1拨动开关接地时,单片机就把bcd码数据按照ut60a万用表软件的协议要求进行特殊的数据转换,然后电路每0.5秒发送一次数据到串口。
电压采集中的工作图片: