zoukankan      html  css  js  c++  java
  • 单片机ADC检测4-20mA电路,以及计算方法

    单片机ADC检测4-20mA电路,以及计算方法

    转载:https://www.hongchangzidonghua.com/?id=24

    1,手里有一个4-20mA输出的压力传感器,假设测量范围是0MPa到2MPa,具体多少忘了,计算方便取个整数。单片机要做的就是采集到这个信号,而且计算出当前的压力。下面给大家一个参考。

    2,4-20mA信号在工业上是非常常见的一种信号,应用在各种传感器的输出上,突出优点就是抗干扰能力强,大家都知道,串联电路中,电流处处相等,那么信号线再长(比如几十米)也不用担心内阻问题导致的压降了。我们只需要检测电流大小即可,单片机检测的和传感器发射的一定是相等的电流。

    3,这个传感器是两线制的,只有一个正极和负极,在12V直流供电下可以正常工作。

    4,单片机有一个16Bit的高精度ADC,能够精确检测0V到3.3V的电压(这里的3.3V指的是ADC电路的参考电压,一般在单片机电路上设计)。也就是说,如果外部有一个电压是0V到3.3V之间变化的,那么单片机就可以把它转化为数字0到数字65535之间,而且这个关系是线性的。实际电路如下:

    压力传感器.png

    5,传感器只需要根据正负极,接到连接器P15上即可。当传感器接好后,会有4到20mA的电流,流过电阻R39,那么对应的电阻上面的电压变化范围就是

    传感器量程 传感器输出 R39电压  (U = I X R)
    0MPa 4mA 588mV
    1MPa(中间量程) 12mA 1764mV
    2MPa(满量程) 20mA 2940mV

    上述电路上有稳压二极管D2,目的是保护单片机的IO口,防止某个瞬间R39上的电压突然增大烧坏单片机。

    6,有了上述表格,那么单片机要做的就是处理数据了。下表给出对应关系。

    传感器量程 单片机检测的电压 ADC采集到的数字
    0MPa 588mV 11677
    1MPa(中间量程) 1764mV 35032
    2MPa(满量程) 2940mV 58386

    7,ADC采集的数字具体公式如下:

        式子中,u是采集到的电压,单位是mV;a是其采集到的理论ADC数字;3300mV是参考电压。

    8,看见了吧,单片机检测传感器的数值并不难,而且是不是特别简单?对了,单片机的ADC计算时候没有小数,不是四舍五入,小数直接舍去。

  • 相关阅读:
    曾经收藏过的好文,唯快不破
    思想上的差距,各种差距,看完再说
    GO的初始简书(一)简介安装
    php 使用composer
    微信开发~又来一拨(本人崇尚开源)
    PHP 底层的运行机制与原理 --转
    关于cgi、FastCGI、php-fpm、php-cgi
    winows 服务器环境搭建 (碰到了windows服务器,小记一下吧~)
    python方法的重写
    python继承简介
  • 原文地址:https://www.cnblogs.com/conglinlixian/p/9848219.html
Copyright © 2011-2022 走看看