|
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的誤差了,還有一些其它誤差并沒有在數據手冊中標示出來,所以,就不 ...
|