如果单片机的ADC为12位,那么它的最大值为4095。单片机在进行AD转换前需要先设置一个参考电压。假如把参考电压设置为5V,5V=4095,0V=0;根据这样的关系,我们就可以把模拟电压进行数字化了。比如:2V=2/5*4095=1638。
单片机通过ADC测电流
电子产品的设计中,我们往往需要加入过流保护。有了单片机ADC的协助,就可以实现这个功能。我们可以给负载串联一个阻值较小的电阻,单片机通过AD输入口采集这个小电阻的压降,根据I=U/R的关系就可以计算出电流的大小。电流过大时,及时切断负载的电源。
单片通过ADC测温度
NTC是负温度系数的热敏电阻,温度越高,电阻值越小;它的阻值变化与温度有着一定的对应关系。使用固定阻值的精密电阻与NTC进行分压,单片机的ADC输入口采集分压点的电压。根据采集到的电压就可以计算出NTC当前的阻值,再根据NTC阻值与温度关系表,可以得到当前的温度。
单片机如何处理ADC采集到的数据?
为了使测量结果更准确,在实际应用中,往往会进行多次集,然后进行软件滤波。常见的软件滤波方法有:
算术平均滤波法:连续采集多个数据,累加起来再进行平均
中位值滤波法:连续采集多个数据,然后从小到大排列,取中间的数值
中位值算术平均滤波法:连续采集多个数据,然后从小到大排列,去除最大和最小的数值,其它的加起来进行平均
限幅滤波法:根据经验,如果采集到的数据偏差超出了最大值,就放弃不使用。
还有更多的软件滤波方法就不多说了,大家可以根据实际应用需求,选用合适的软件滤波方法。