解决上面问题的简单方法是在单片机输入之前配置一个由运算放大器组成的缓冲处理电路,见图。
增加这级运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源,尤其单片机是采用A/D接口来接受这种零点信号不为零电压的输入时,可以保证A/D转换位数的资源能够全部应用于有用信号上。
以4~20mA 例,图B中的RA0是电流取样电阻,其值的大小主要受传感变送器供电电压的制约,当前级采用24V供电时,RA0经常会使用500Ω的阻值,对应20mA 的时候,转换电压为10V,如果仅仅需要转换电压为5V,可以取RA0=250Ω,这时候,传感变送器的供电只要12V就够用了。因为即使传送距离达到1000米,RA0多也就几百Ω而已。
同时,线路输入与主电路的隔离作用,尤其是主电路为单片机系统的时候,这个隔离级还可以起到保护单片机系统的作用。
图 采用的是廉价运放LM324,其对零点的处理是在反相输入端上加入一个调整电压,其大小恰好为输入4mA时在RAO上的压降。有了运算放大器,还使得 RAO的取值可以更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。这样,就可以真正把4~20mA电流转换成为0~5V电压了。
使用运算放大器也会带来一些麻烦,尤其在注重低成本的时候,选择的运放往往是廉价的,运放的失调与漂移,以及因为运放的供电与单片机电路供电的稳定性,电源电压是否可以保证足够稳定,运放的输入阻抗是否对信号有分流影响,以及运放是否在整个信号范围内放大特性平坦,如此等等,造成这种廉价电路的实际效果不如人意。
而的不如人意之处还是在零点抵消电路上,随着信号电流的变化,运放的反相端的电压总是会与零点调整电压发生矛盾,就是这个零点电压也在随着运放输出的变化而变化,只不过由于有了信号有用电压的存在,而在结果中不容易区分而已。这种现象容易造成非线性加大。虽然可以在单片机里采用软件校正来纠正,但是,就具体措施而言,这样做需要增加编程人员不少的工作量,而且需要多点采集数据来应对。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。