MAX187_量程0-2.5伏电压表_软件滤波
搞了好久的开发板,这次决定自己做模块啦~~~哈哈,第一个模块就是ADC(模拟转换成数据),选好了模块,就选块芯片吧,经过本人层层删选,最后,还是决定用TI公司的MAX187,12位精度,SPI通信,8个管脚,小巧方便使用…好了,接下来晒一下板子吧,虽然很搓,但是毕竟是自己画的: 该模块采用TL431作为基准源,纹波经过示波器考验合格…..板子的成品: 霍霍,接下来就是利用这个模数转换模块做个简易的电压表啦,首先还要有个显示模块,再次经过慎重考虑,发现速度快,性价比高的诺基亚5110渐渐的浮出水面, 还有此模块中最重要的控制中心就是核心板啦,霍霍,自己的开发板有点…那就暂不考虑啦,所以就拿牛哥的板子来练练手…有图,但是要保密,嘿嘿,还有还有,万事俱备,只欠东风啦,给这些模块供电的电压可不能少啊~~~ 这个电源能够同时提供正负5伏,3.3伏,可调的电压…由于可调电压不能在0-2.5V中准确,标准的输出需要的电压,所以实验室的电源就派上用场啦, 呵呵,一切都准备好啦~~~接下来就说说程序的那点事…因为整个过程当中困扰我最多的还真是程序。首先就是调用函数的时候的形参,和实参的问题了,还有从中知道数据类型绝对不能忽视,有时候数据达到最大值后会归零,这样就会产生一些意想不到的结果。第一次将采样得到的数据显示在5110上,少不了有一些兴奋,但是冷静下来后,才发现显示的内容在不停地跳动,2的12次方是
4096,所以显示0-4095之间,但由于被采样的电压有纹波,所以显示的内容一直在挑,像个猴子,一点都不听话,怎么样让它听话呢?看了《深入浅出AVR》后,用牛哥说的话就是“寡人终于悟出来啦~~~”利用软件滤波,我将32个采样得到的数据取个平均值显示出来,哈哈,效果果断不一样…4095,本来百位都会大幅度的跳动,经过滤波后,十位都很听话了,霍霍,数据能够比较稳定的显示后,接下来就是算法啦,将采样得到的数据经过特定的算法后转换成电压值…霍霍,用怎么样的算法,因人而异啦,恩,经过几天的反复,反复,再反复…终于!!!!出来啦,稳定的电压值~~虽然量程比较小,但是可以通过模拟的放大,缩小电路扩大量程,霍霍,当被测电压只有1伏一下时,5110显示:XXX mV。当被测电压超过1V时,会显示:X.XX V。好啦好啦,就先说到这里啦,以后待续……