单片机的ADC可以将模拟量转化为数字量

不同品牌的单片机ADC的配置方法有一定的差异,但基本方法和原理是一样的,启动ADC转换后,可以等待转换完成然后读取数据,或者设置为转换完成产生中断然后读取数据。

因为不同的单片机的ADC配置是不一样的,本文给大家分享一下单片机ADC的一些通用原理和注意事项。

单片机ADC的工作原理

ADC其实就是就是一个将摸拟电压进行数字化的过程。需要事先定义好量程和分辨率。量程其实就是电压基准,也就是最大值,假如以5V电压为基准,那么测量的范围就是0V~5V;分辨率就是测量的精度了,假如12位,12位二进制最大值为4095;这时候就可以知道0V=0,5V=4095了,把5V分为4095份就可以了,由此可见,单片机ADC的分辨率越高,测量出来的结果就越精确了。

ADC只能测量电压,那么我们需要测电流、测温度怎么办?可以根据欧姆定律进行计算。以测量负载电流为分例,我们只需要给负载串联一个小阻值的高精度电阻,因为串联电路中的电流是相同的,当测量出串联的小电阻的压降,根据I=U/R,就可以计算出电流值了哦。

测温和测光强度也是一样的,温度变化时,温度传感器的电阻会发生变化,光强度变化时,光敏电阻的阻值也会变化,变化的阻值就会引起电压降的变化,根据这种变化关系就要以计算出温度和光强度了。

单片机ADC转换注意事项

ADC转换需要电压基准,没有基准的电压就没有准确的数值。ADC的转换结果是根据基准电压得到的,得到的满量程数据就是基准电压值。单片机的ADC参考电压可以是电源电压或者单独输入的参考电压,也可以是单片机内部产生的参考电压。

假如基准电压为5V,单片机的分辨率为12位(111111111111),那么ADC数据寄存器最大的结果是4095,当输入的电压大于等于基准电压5V后,结果都是4095了。

我们用ADC测量电压时需要设置合适的分压电阻,避免输入的模似电压信号超过基准电压。我们一般尽量让需要测量的数据处于基准电压的中间值,以获理更准确的数据。

以NTC测温为例,假如25℃时,NTC的阻值为10K,如果主要测温的范围在是25℃左右的环境温度,我们一般会使用10的固定电阻进行分压,就会得到围绕中间值变化的摸拟电压数据。

当然,输入的摸拟数据是变化的,除了硬件电路需要做好滤波,减少输入数据的波动;我们还可以进行软件滤波,比如进行多次数据采集,然后进行平均。软件滤波的算法有很多种,我们可以针对应用场合选择适合的软件滤波算法。

单片机ADC的工作原理

因为一般单片机的ADC精度不会太高,微弱的摸拟信号需先进行放大才可以测量。比如热电偶,相差100℃的温度,才有一两毫伏的电热差变化,即使24位精度的ADC也难精准测量。