|
20黑币
使用的是STC15F2K60S2单片机,使用了8bit的ADC0832和内置的10bit的内置adc分别对 vcc,gnd,电位器,外置的18650进行电压检测.测出来的电压结果有不小误差.
请问影响这些误差的主要因素是什么,目前检测不同的测试源,经过对比,不同情况下adc0832与内置的adc都与实际的电压有不小差别,误差均大于他们标称的误差.
stc内置的adc在检测过程中,偶尔还有较大的变化.
怎样才能较为准确的测试电压值.
另外在测试电压的时候串联一个10k的电阻用于限流(不是分压),测试的电压值为什么会降低?
程序中的adc0832的电压计算
uint8_t value = ADC0832_Read(1, 1);
volt = (value * 5 / 255.0);
程序中的Stc内置的adc电压计算
uint16_t value = Get_ADC10bitResult(ADC_CH0);
volt = (value * 5 / 1023.0);
单片机供电由ch340模块提供5v的电源
1.检测通道接5v 万用表测量的结果是5.00v adc0832结果偏小
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.921 stc adc:5.0
Volt:adc0832:4.921 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.921 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
Volt:adc0832:4.901 stc adc:5.0
2.检测通道接GND stc内置adc结果有波动
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.0
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.0
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.0
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.4
Volt:adc0832:0.0 stc adc:0.0
Volt:adc0832:0.0 stc adc:0.0
3.检测通道接了电位器,电位器通过 万用表测量的结果是3.52v stc内置结果稍微接近 ADC0832有0.2v的误差
olt:adc0832:3.333 stc adc:3.567
Volt:adc0832:3.313 stc adc:3.567
Volt:adc0832:3.313 stc adc:3.567
Volt:adc0832:3.313 stc adc:3.519
Volt:adc0832:3.333 stc adc:3.558
Volt:adc0832:3.372 stc adc:3.567
Volt:adc0832:3.352 stc adc:3.563
Volt:adc0832:3.313 stc adc:3.558
Volt:adc0832:3.372 stc adc:3.558
4.检测通过接18650电池正极锂电池负极接GND,万用表测试 锂电池的电压是4.0v stc内置结果误差偏大 ADC0832有0.12v的误差
Volt:adc0832:3.882 stc adc:4.61
Volt:adc0832:3.882 stc adc:4.61
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt:adc0832:3.882 stc adc:4.56
Volt adc0832:3.921 stc adc:4.125
Volt adc0832:3.941 stc adc:4.134
Volt adc0832:3.941 stc adc:4.125
Volt adc0832:3.921 stc adc:4.130
Volt adc0832:3.921 stc adc:4.130
Volt adc0832:3.901 stc adc:4.125
Volt adc0832:3.921 stc adc:4.134
Volt adc0832:3.921 stc adc:4.134
Volt adc0832:3.921 stc adc:4.130
Volt adc0832:3.921 stc adc:4.134
Volt adc0832:3.921 stc adc:4.134
Volt adc0832:3.921 stc adc:4.130
Volt adc0832:3.901 stc adc:4.130
Volt adc0832:3.921 stc adc:4.130
Volt adc0832:3.921 stc adc:4.130
|
最佳答案
查看完整内容
ADC那的限流其实没有意义,ADC输入本身就是高阻抗的,要不要限流都不重要,一般要加的话也是加个几百欧的,不会用K级别的
你的计算公式本身就是有问题的,楼上已经说了
其实除法运算不需要/1024.0的,只要/1024就可以了,可以在别的地方增加处理代码就可以了
8位ADC,5V参考电压,精度误差就是19.5mV,大概就是0.02V,而ADC0832自身的误差就有两个位的误差,加起来就是0.06V的误差了,还有一些其它误差并没有在数据手册中标示出来,所以,就不 ...
|