当刚接触AD采样时,一直对于AD采集出来的数值与实际的值之间的关系有些模糊,现在闲暇下来打算记录一下。这里以采集量为电压量来记录,当采集温度、电流等模拟量时,都是通过一个电路把模拟量转化为一个电压量输入进AD采样引脚,就不一一叙述。

         AD采样,不同的芯片有不同位数的AD,一般会有8位、12、16位,不同位数的AD对应的采集出来的数值不同,精度不同。如果说ADC为8位的,则意味着有8个Bit的内存来存储AD采集出来的数值,那么寄存器中的数值最大为255,同理,12位的AD最大为4095,16位最大为65535.

       如果说采集一个相同的电压范围0-300V,那么16位的AD相当于就把300V分成65536份,8位的AD则分为256份,所以16位的AD电压分辨率>12位的精度>8位的精度。位数越大精度越高。

      AD采样要理清的关系在于实际的电压,AD采样引脚输入的电压和AD采样采出来的数值三者的关系。

     1、AD采样引脚输入的电压与AD采样出来寄存器中的数值的关系(以12位AD为例)

        我们要知道AD采样的引脚的输入电压一般都会有一个范围一般为0~VDD,如果有参考电压则为0~Vref.例如AD的引脚输入范围为0~3.3V,12位的AD,那么采集出来的AD值与AD输入电压的关系如下图所示。

那么当AD采集寄存器中的数值为2035对应的AD引脚输入电压关系即为:3.3 / 4095  = Vad / 2035  =》Vad = (2035 *3.3) /4095

    这样就算出来AD引脚输入的电压了,接下计算AD引脚输入电压与实际采样的电压(电流,阻值)之间的关系。

  2、当采集一个模拟的信号如电压、电流、温度等需要经过电子工程师来进行一个分压电压和放大电路(这部分硬件原理我也不是很懂学校没好好学。。。)之后就会得到一个公式,这个公式根据不同的硬件有不同的公式,具体要问硬件工程师,比如我这次的项目中的采样电路如下所示。

硬件工程师给出的公式就是Vad=0.04762*Vout

当我们知道了这两个公式,那么Vout = Vad / 0.04762 =》Vout = ((2035 *3.3)  / 4095) /0.04762.

那么知道了AD采样出来的寄存器的数值就可以这样算出来实际的值了。(AD采集出来的数值一定要记得进行滤波)。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐