前言 现在很多的xx数字万用表都具有RS232串行接口,万用表在实际测量电参数的同时把测量到的电参数按一定的通讯协议通过RS232串行接口传输到计算机,由计算机的上位机软件进行数据的实时、定时采集,利用计算机端的软件可以记录大量数据从而方便对一定时间段内的电参数监测分析,生成电参数变化曲线。 但是目前具有这种PC机采集记录功能的xx万用表价格昂贵,让很多人望而却步,在技术论坛上看到很多技术网友想自制类似功能的万用表,希望有人能制作出相关功能的电压表出来,提供自制资料供大家自己制作,以方便平时工作和学习的需求。由于自己本人的技术成长也是受益于网络的共享精神,是到自己回报网络和网友的时候了… 很多网友提出了相关的方案。其中的一个方案是通过单片机读取普通数字万用表的LCD液晶段码信息,就像读取LED数码管的段码信息来处理,然后通过单片机进行数据转换发送到计算机端的软件,当然还得开发计算机端的软件。但是LCD液晶是交流信号驱动的,和用数字电平驱动的LED数码管属于两种不同的显示设备,所以用单片机来读取LCD液晶的段码信息是不现实的,而且自己开发上位机软件的难度和工作量都较大,于是这个方案xx了。当然这其中网友提出了很多可行的模块方案。 {zh1}结合了所有的建议,还是决定采用带AD功能的单片机直接测量采集电参数,进行数据转换,然后看看能不能直接利用市面上现成的万用表的上位机软件进行数据的采集保存,这样可以缩小开发的周期和成本,但是想要利用现成的万用表上位机软件的话就涉及到通讯协议的问题了,厂家一般是不公开这些资料的。于是还是利用了网络强大的搜索功能,总算找到相关协议资料了…在此再次感谢网络的共享精神,感谢《我爱电子制作网》 的作者何光站长,原来何光站长已经制作出相关功能的串口电压表,并且在其网站上公布了相关万用表软件和协议文件,总共提供了2个万用表厂家的软件和协议,其中优利德厂家开发的UT60A数字万用表软件功能比较完善。本想直接推荐大家按此资料自制的,但{zh1}本人还是决定在此基础进行功能的增强和完善,算是一个改进版本吧,相信何光站长也会赞同的。好了,下面就开始吧… 串口电压表基本工作流程: ATmega48单片机每0.5秒对输入到ADC0口的直流电压(0 - 4V直流电压)进行AD转换,为了保证采集到的电压值的稳定性,单片机每次AD转换的时候连续读取8次的电压值,然后去掉其中的一个{zd0}值和一个最小值再求平均值,在把得到的电压平均值进行BCD码转换,把BCD码数据送到数码管进行刷新显示,既每0.5秒更新一次当前电压值。 当把PD6口的S1拨动开关接地时,单片机就把BCD码数据按照UT60A万用表软件的协议要求进行特殊的数据转换,然后电路每0.5秒发送一次数据到串口。 我做得串口电压表的实验板,每个模块都是独立的,模块直接的连接使用杜邦连接线,插一插连接线就可以了,很方便,这样可以重复使用每个模块,其他的实验如果有用到的直接插下线就可以,节省一些重复焊接劳动。呵呵,图片拍的不是很好,请谅解 电压采集中的工作图片: 串口万用表技术指标 直流电压量程:0 – 4V {zd0}显示字:3.999 分辨率:4mV 准确度:可用高精度数字万用表调试到{zj0}准确度为止 环境温度:室温18~28℃ 环境湿度:不大于75% RH Protel99SE格式和PDF格式的原理图下载: (文件大小:42.484 KB) HEX烧写文件: (文件大小:1.595 KB) ATmega48的串口电压表详细制作说明文档(PDF格式):文件大,分成2个压缩包,一起下载后解压{dy}个即可。 (文件大小:146.484 KB) (文件大小:113.632 KB) UT60A的软件的下载地址如下: UT60A的软件的使用说明书下载地址如下: 软件的设计 AVR单片机开发环境采用AVR Studio 4.12SP4 + WINAVR20060421 ,采用C语言开发。本串口电压表暂时只提供hex文件,暂不提供源程序,请谅解。 本串口万用表目前版本为V1.1,只有一个4V的量程,功能的扩展将根据网友实际的需求和建议做改进。相信不久就会有新版的。 同时也欢迎大家访问我的技术博客 AVR猎手的地盘: |