如何通过ADC模块采集模拟信号





0/5 (0投票)
本文档展示了如何通过ADC模块采集模拟信号。
ADC 简介
在工业控制和智能仪器中,MCU 常用于实时控制和实时数据处理。由于微计算机的CPU只能处理数字信息,而控制或测量相关的参数通常是连续变化的模拟量,例如温度、压力、速度和电压等。只有将连续变化的模拟量转换为数字量,单片机CPU才能进行处理。这个过程称为A/D转换,能够完成A/D转换的设备称为A/D转换器或ADC。目前市面上大多数微控制器都自带ADC转换接口。如果没有ADC转换接口,可以使用ADC数模转换芯片进行外部扩展。
如何实现
ADC模块将模拟信号转换为数字信号,数字信号用0和1表示。ADC模块中存在一个参考电压,如果给定的参考电压为5V,ADC为12位。也就是说,参考电压被分成2^12份,即4096份,最小分辨率为VREF/4096。
也就是说,二进制值000000000000代表输入模拟量0V,而111111111111代表最大VREF。
然后以C8051微控制器为例,如图所示,微控制器工作电源为3.3v,参考电压为2.048v,因此模拟量的输入范围为0~2.048V。如果电压范围大于参考电压,可以使用电阻分压器进行降压,或使用运算放大器进行减小。
MCU的ADC是12位的。也就是说,当输入电压为0时,单片机转换的数字量结果为000000000000(二进制),当输入电压为2.048v时,单片机转换的数字量结果为1111111111(二进制),十进制为4095。
也就是说,输入电压的值V=2.048*ADC采集的数字量/4095。
例如,我们需要采集一个0~10V的模拟电压进行显示。那么,我们可以首先将0~10V的电压降低五倍,无论是通过电阻分压器还是通过运算放大器减小,然后将其连接到单片机的ADC采样端口,即上图中的P2.2端口。
最终的转换公式为V = result * 2.048/4095 * 5; 其中result是微机采集的数字量。
历史
这是最初发布的内容。我将在此保留修订列表。