單片機(jī)如何處理ADC采樣數(shù)據(jù)?首先一定有小伙伴有疑問(wèn),為什么還要對(duì)采樣的數(shù)據(jù)進(jìn)行處理呢?直接拿來(lái)用不行嗎?對(duì)于這個(gè)問(wèn)題,我的回答是不建議這樣做,因?yàn)槿魏蜗到y(tǒng)都會(huì)存在干擾,不進(jìn)行處理就會(huì)有數(shù)據(jù)存在一定的誤差。那么我進(jìn)行數(shù)據(jù)處理就是要盡量避免因外界干擾引起的誤差。
在這里作者推薦兩種方法,第一種方法是多次采樣加權(quán)取平均,我相信很多朋友都可以想到這種方法,但在寫程序的時(shí)候可以運(yùn)用一些技巧,作者分享給你。首先我們ADC采集8次數(shù)據(jù)并且對(duì)這8次數(shù)據(jù)累加(可以每1ms調(diào)用該函數(shù)),累加完成后將累加結(jié)果右移3位得到最后的采樣結(jié)果。當(dāng)然這個(gè)方法還可以進(jìn)一步改善,比如取樣10次,然后去掉最大值和最小值,再對(duì)剩下的8次進(jìn)行取平均。下面貼出參考程序供小伙伴參考。
當(dāng)然,第一種取平均的方法能夠有效抑制干擾,但因?yàn)樾枰啻尾蓸?,更新?shù)據(jù)的時(shí)間會(huì)很長(zhǎng),比如取樣8次,每1ms取樣一次,那么更新數(shù)據(jù)就需要8ms時(shí)間,所以對(duì)采樣的數(shù)據(jù)實(shí)時(shí)性要求不是很高的系統(tǒng)才可以用這種方法。所以我們第二種方法就是用在實(shí)時(shí)性比較高的系統(tǒng)。作者推薦的是中值濾波的方法,實(shí)現(xiàn)思想就是取5個(gè)數(shù)據(jù),每次采樣的新數(shù)據(jù)替換掉最老的數(shù)據(jù),然后把中間的那個(gè)數(shù)據(jù)當(dāng)做是采樣數(shù)據(jù),這樣不僅可以有效抑制干擾,而且響應(yīng)速度快。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44997瀏覽量
650754 -
adc
+關(guān)注
關(guān)注
99文章
6710瀏覽量
549312
發(fā)布評(píng)論請(qǐng)先 登錄
基于STC8G8K64U單片機(jī)的高速ADC采樣板

怎樣去測(cè)試STM32單片機(jī)ADC采樣速率問(wèn)題
單片機(jī)調(diào)試中對(duì)RAM或Flash的A/D采樣數(shù)據(jù)繪圖處理技術(shù)

單片機(jī)采樣模擬量數(shù)據(jù)的方法
STC12C4052ADSTC單片機(jī)ADC采樣C程序

AVR單片機(jī)教程--AVR單片機(jī)的ADC

AVR單片機(jī)ADC采樣編程需要注意的問(wèn)題

單片機(jī)ADC采樣算法----平均值采樣法

解決STM32單片機(jī)的ADC采樣不準(zhǔn)確偏移的問(wèn)題

STM32單片機(jī)實(shí)現(xiàn)DMA+ADC+UART功能

評(píng)論