本文主要是介绍单片机如何优雅的读取0-10V传感器信号(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在嵌入式系统中会用到0-10V电压信号输出的传感器。而单片机ADC引脚的输入电压却比较低。如STM32引脚输入电压最高为3.3V,高于3.3V会导致单片机损坏。这篇文章介绍一种可用于单片机的0-10V模拟量采集电路。让我们一起来看看吧!
如下图所示,使用两个电阻分压,阻值可取为2:1,分压后得到信号源1/3的电压,这样可以将0-10V之间变化的信号变成0-3.33V之间变化的信号。如下图所示,为最基本的电阻分压采样原理图。我使用了2K和1K电阻分压。
仿真波形如下图所示。
对上图进行完善,使用R3和C1构成低通滤波电路,用于滤除传输过程中的高频干扰信号,在PCB布局时电阻电容应靠近单片机ADC管脚。二极管D1为钳位二极管,用于保证在电路故障时(比如R2虚焊或者R2,R1电阻焊错位置等),或出现尖峰浪涌电压时,VF1可以保持在一个安全电压,不至于损坏单片机。电路中D1应选择导通压降低的肖特基二极管。
下图展示了,故意将R1和R2焊错位置时,二极管D1开始作用,将VF1钳位在一个安全的电压,保护了单片机。
上述电路,工作时R3中会流过电流,影响到采样精度。对以上电路继续优化,使用一个输入输出Rail-to-rail的运放构成了一个电压跟随器。
电路中使用理想情况下运放输入阻抗无穷大的特点。在信号采集中对R1,R2分压电路影响小,使电阻分压结果更加精准。
细心的朋友应该已经注意到了,在电路中去掉了用于保护的钳位二极管。那么请问这样的电路当出现故障时,还具有保护单片机的能力吗?答案是具有的,具体原因大家可以复习下运放参数中的输入输出轨至轨。
文中所用到的仿真电路源文件,可在公众号后台回复“信号采集电路”,进行领取。
这篇关于单片机如何优雅的读取0-10V传感器信号(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!