久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8203|回復(fù): 28
收起左側(cè)

關(guān)于單片機(jī)ADC如何對(duì)正弦波信號(hào)的采樣?

[復(fù)制鏈接]
ID:898834 發(fā)表于 2021-7-26 15:54 | 顯示全部樓層 |閱讀模式
利用stc8a8k單片機(jī)自帶的ADC如何進(jìn)行正弦波信號(hào)的采樣?
回復(fù)

使用道具 舉報(bào)

ID:462768 發(fā)表于 2021-7-26 20:44 | 顯示全部樓層
電流轉(zhuǎn)換成電壓,這個(gè)過(guò)程和電容充電類(lèi)似,電容電越多,電壓越高,然后比如用電壓觸發(fā)器,高到一個(gè)程度就觸發(fā)打開(kāi)另一個(gè)電容,這些電容都是像秤砣一樣實(shí)現(xiàn)測(cè)量好的。

電壓轉(zhuǎn)換成頻率,有一個(gè)集成電路叫做壓控振蕩器,這個(gè)振蕩器的頻率是用電壓高低來(lái)決定的,然后
電壓就轉(zhuǎn)換成了頻率,這個(gè)頻率就可以通過(guò)譯碼器翻譯成數(shù)字信號(hào)。


評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-26 21:09 | 顯示全部樓層
參照STC官網(wǎng)例程就行。任何波形都一樣的。差別在于你要什么樣的數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-26 21:31 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-26 21:09
參照STC官網(wǎng)例程就行。任何波形都一樣的。差別在于你要什么樣的數(shù)據(jù)。

我采集的數(shù)據(jù)浮動(dòng)很大,輸入直流電就完全沒(méi)問(wèn)題,輸入交流正弦波就有很大的差別
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-26 21:31 | 顯示全部樓層
m2006410 發(fā)表于 2021-7-26 20:44
電流轉(zhuǎn)換成電壓,這個(gè)過(guò)程和電容充電類(lèi)似,電容電越多,電壓越高,然后比如用電壓觸發(fā)器,高到一個(gè)程度就觸 ...

用單片機(jī)自帶ADC如何實(shí)現(xiàn)呢
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-7-26 21:32 | 顯示全部樓層
"進(jìn)行正弦波信號(hào)的采樣"
你這是要干嘛呢?這ADC是有嚴(yán)謹(jǐn)?shù)倪壿嫷?不是說(shuō)"我出去吃個(gè)飯",然后你可以點(diǎn)個(gè)外賣(mài),也可以吃燒烤,來(lái)碗螺獅粉也行的
這正弦波有:頻率,峰-峰值,平均值,有效值(220V市電說(shuō)的就是有效值),多點(diǎn)采樣(玩音響用得到,可以叫頻譜顯示)
還有一個(gè)是要精密整流之后的數(shù)據(jù),那玩意沒(méi)玩過(guò),不好說(shuō)
那么,你現(xiàn)在是要采什么樣呢?
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-26 21:35 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-7-26 21:32
"進(jìn)行正弦波信號(hào)的采樣"
你這是要干嘛呢?這ADC是有嚴(yán)謹(jǐn)?shù)倪壿嫷?不是說(shuō)"我出去吃個(gè)飯",然后你可以點(diǎn)個(gè)外賣(mài) ...

是要對(duì)正弦波的有效值進(jìn)行采樣,頻率為1Khz,幅度為0-50mv的正弦波進(jìn)行采樣
回復(fù)

使用道具 舉報(bào)

ID:893692 發(fā)表于 2021-7-27 02:22 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-26 21:31
我采集的數(shù)據(jù)浮動(dòng)很大,輸入直流電就完全沒(méi)問(wèn)題,輸入交流正弦波就有很大的差別

對(duì)啊 交流采樣信號(hào)就是這樣,采集交流的時(shí)候你要考慮抬升信號(hào)的電位,不然負(fù)半軸的電壓無(wú)法采集到
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 09:13 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-26 21:35
是要對(duì)正弦波的有效值進(jìn)行采樣,頻率為1Khz,幅度為0-50mv的正弦波進(jìn)行采樣

純交流波形的話(huà)。因?yàn)檎?fù)半周是對(duì)稱(chēng)的。如果對(duì)精度要求不高。精度為全波的1半,可以不采集負(fù)半周的也行。從正半周那里取數(shù)據(jù)計(jì)算就行了。有交值就是至少在連續(xù)采集1個(gè)正弦波周期內(nèi)的信號(hào)值。然后取最大的ADC值*2,即為峰-峰值,再通過(guò)峰-峰值換算公式轉(zhuǎn)成有效值。具體換算公式可百度
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 09:43 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-27 09:13
純交流波形的話(huà)。因?yàn)檎?fù)半周是對(duì)稱(chēng)的。如果對(duì)精度要求不高。精度為全波的1半,可以不采集負(fù)半周的也行 ...

我用信號(hào)發(fā)生器輸出了一個(gè)頻率為1kHZ,最大值為3V,最小值為1V的正數(shù)正弦波,用ADC采集到的數(shù)據(jù)依舊波動(dòng)很大
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 09:44 | 顯示全部樓層
m24 發(fā)表于 2021-7-27 02:22
對(duì)啊 交流采樣信號(hào)就是這樣,采集交流的時(shí)候你要考慮抬升信號(hào)的電位,不然負(fù)半軸的電壓無(wú)法采集到

我用信號(hào)發(fā)生器輸出了一個(gè)頻率為1kHZ,最大值為3V,最小值為1V的正數(shù)正弦波,用ADC采集到的數(shù)據(jù)依舊波動(dòng)很大
回復(fù)

使用道具 舉報(bào)

ID:169891 發(fā)表于 2021-7-27 09:54 | 顯示全部樓層
你的采樣速度是多少呢,能正確反應(yīng)1KHZ的信號(hào)嗎
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 10:29 | 顯示全部樓層
ljfljfljf123 發(fā)表于 2021-7-27 09:54
你的采樣速度是多少呢,能正確反應(yīng)1KHZ的信號(hào)嗎

我選擇的是416個(gè)系統(tǒng)時(shí)鐘轉(zhuǎn)換一次
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 10:45 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-27 09:43
我用信號(hào)發(fā)生器輸出了一個(gè)頻率為1kHZ,最大值為3V,最小值為1V的正數(shù)正弦波,用ADC采集到的數(shù)據(jù)依舊波動(dòng) ...

下面代碼僅供參考,不一定能運(yùn)行,隨便打的.如有不當(dāng).請(qǐng)指正.只是方便說(shuō)明編程思路.
unsigned int get VRMS()
{
unsigned int i;
unsigned int tem,max=0;
for(i=0;i<1000;i++)  //循環(huán)1000次.這個(gè)次數(shù)根據(jù)實(shí)際情況設(shè)置.一般要>=一個(gè)波形周期的時(shí)間.比如1KHz的
                               //單個(gè)周期就是1/1000=1ms,保證循環(huán)時(shí)間大于1ms就行了.
  {
     tem=Get_ADC_value();  //取ADC值
     if(tem>max) max=tem; //這個(gè)周期內(nèi)的最大值即峰-峰值.
  }
max=max*2;//因?yàn)橹徊杉苏胫芷诘牟ㄐ?所以一個(gè)全波的峰峰值即加上負(fù)半周信號(hào)*2
max=max/2.828  //  峰_峰值求RMS值公式:RMS=Peak_Peak/sqrt(8),為方便計(jì)算.直接寫(xiě)上了sqrt(8)=2.828
return max;   //返修RMS值.注意這個(gè)只是ADC值.再根據(jù)實(shí)際情況換算成標(biāo)準(zhǔn)電壓就行.比如參考電壓是5V,那就是:5/4095*max
}
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 11:04 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-27 10:45
下面代碼僅供參考,不一定能運(yùn)行,隨便打的.如有不當(dāng).請(qǐng)指正.只是方便說(shuō)明編程思路.
unsigned int get VRM ...

多謝,我參考一下方法
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 11:29 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-27 10:45
下面代碼僅供參考,不一定能運(yùn)行,隨便打的.如有不當(dāng).請(qǐng)指正.只是方便說(shuō)明編程思路.
unsigned int get VRM ...

這個(gè)程序適用于一個(gè)周期全為正的正弦波嗎,不存在負(fù)半周為負(fù)
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 12:58 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-27 11:29
這個(gè)程序適用于一個(gè)周期全為正的正弦波嗎,不存在負(fù)半周為負(fù)

全為正的話(huà)。那就去掉max*2就行。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-7-27 13:06 | 顯示全部樓層
為什么學(xué)單片機(jī)的教程都會(huì)有說(shuō)到要學(xué)習(xí)模擬電路基礎(chǔ)的呢
你一個(gè)正弦波,不管有沒(méi)有負(fù)半周,它的電壓都是在變化的,那么,單片機(jī)ADC只是一段時(shí)間內(nèi)(就是ADC轉(zhuǎn)換時(shí)間)的電壓,每次轉(zhuǎn)換的時(shí)間不同,電壓也會(huì)不同,波動(dòng)就是這么來(lái)的
你肯定要有一個(gè)濾波電路的
我沒(méi)有具體的做過(guò)50mV的,所以,不知道要不要精密整流(不是整流,精密整流是一個(gè)絕對(duì)值電路),還要加一個(gè)濾波電路,這樣就得到一個(gè)峰值,想要有效值,還得再除以根號(hào)2
自己上網(wǎng)先學(xué)一下吧

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 13:47 | 顯示全部樓層
拋開(kāi)模擬電路基礎(chǔ),要求一個(gè)RMS,(也就是有效值,通俗地說(shuō),就是萬(wàn)用表打到AC檔。再測(cè)試正弦波交流電壓的值。),只需要知道峰_峰值即可,然后通過(guò)公式再求其它平均值也有,有效值也好。就很容易。
什么是峰_峰值?就是一個(gè)周期內(nèi)波形的最高點(diǎn)與最低點(diǎn)的值。所以上面的程序重點(diǎn)就是找到這個(gè)周期內(nèi)(不斷循環(huán)取ADC值)的最高點(diǎn),即峰_峰值,那么再換算成其它就容易了。就像一個(gè)圓。知道了R半徑,再求其它面積,周長(zhǎng)什么的。就容易了。
對(duì)于要求不高的場(chǎng)合,直接用一個(gè)4.7uf的電容偶合輸入到單片機(jī)的ADC引腳即可,這種方法相對(duì)簡(jiǎn)單。只能采集正半周。可以用于實(shí)驗(yàn)。如果在應(yīng)用場(chǎng)合,那就要根據(jù)情況再加緩沖,放大或者隔離,濾波電路了。主要是防止受干擾。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:313048 發(fā)表于 2021-7-27 14:02 | 顯示全部樓層
ADC采樣實(shí)際上你只要電壓對(duì),采樣速率夠,按道理是不會(huì)出現(xiàn)你說(shuō)的那些情況,而且看上面那些樓說(shuō)的前面并一個(gè)電容啥的,這種只針對(duì)直流信號(hào)好一點(diǎn),交流不建議并電容,這樣無(wú)法反應(yīng)信號(hào)的真實(shí)完整性。而且你不能直接把信號(hào)發(fā)射器產(chǎn)生的信號(hào)直接懟到單片機(jī)的ADC引腳,該信號(hào)應(yīng)該電阻到地才對(duì),同時(shí),如果信號(hào)發(fā)生器產(chǎn)生的是正負(fù)電壓的,你要把他通過(guò)運(yùn)放或者其他別的東西將其偏移到正電壓,或者采用差分采樣的方式進(jìn)行采樣才可得到正確的電壓

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 14:48 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-7-27 13:06
為什么學(xué)單片機(jī)的教程都會(huì)有說(shuō)到要學(xué)習(xí)模擬電路基礎(chǔ)的呢
你一個(gè)正弦波,不管有沒(méi)有負(fù)半周,它的電壓都是在變 ...

好的好的,感謝指導(dǎo)
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 14:49 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-27 13:47
拋開(kāi)模擬電路基礎(chǔ),要求一個(gè)RMS,(也就是有效值,通俗地說(shuō),就是萬(wàn)用表打到AC檔。再測(cè)試正弦波交流電壓的 ...

多謝指導(dǎo)
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 19:35 | 顯示全部樓層
AUG 發(fā)表于 2021-7-27 14:02
ADC采樣實(shí)際上你只要電壓對(duì),采樣速率夠,按道理是不會(huì)出現(xiàn)你說(shuō)的那些情況,而且看上面那些樓說(shuō)的前面并一 ...

可是交流正弦波每一個(gè)時(shí)刻的電壓值是不同的,是需要進(jìn)行多次采樣取最大值叭
回復(fù)

使用道具 舉報(bào)

ID:898834 發(fā)表于 2021-7-27 19:43 | 顯示全部樓層
wfqxgw 發(fā)表于 2021-7-27 10:45
下面代碼僅供參考,不一定能運(yùn)行,隨便打的.如有不當(dāng).請(qǐng)指正.只是方便說(shuō)明編程思路.
unsigned int get VRM ...

這個(gè)程序邏輯我覺(jué)得沒(méi)錯(cuò),但是今天測(cè)試了以下,測(cè)量結(jié)果跟實(shí)際仍舊不同
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 21:28 | 顯示全部樓層
本帖最后由 wfqxgw 于 2021-7-27 21:33 編輯

以下輸入電路供參考。另外。轉(zhuǎn)換數(shù)據(jù)時(shí)注意變量類(lèi)型。有小數(shù)點(diǎn)的。要用float.這里要注意,實(shí)際交流電壓是R6的5k6電阻上面的。先用萬(wàn)用表測(cè)試出實(shí)際值。再用單片機(jī)驗(yàn)證,如果電壓不高。1K限流電阻可以暫時(shí)不用。主要是用于驗(yàn)證數(shù)據(jù)。
adc.JPG
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-7-27 22:10 | 顯示全部樓層
本帖最后由 Y_G_G 于 2021-7-28 09:06 編輯
zqz1345444061 發(fā)表于 2021-7-27 19:43
這個(gè)程序邏輯我覺(jué)得沒(méi)錯(cuò),但是今天測(cè)試了以下,測(cè)量結(jié)果跟實(shí)際仍舊不同

怎么就覺(jué)得這個(gè)邏輯可行了呢?
unsigned int tem,max=0;
for(i=0;i<1000;i++)  //循環(huán)1000次.這個(gè)次數(shù)根據(jù)實(shí)際情況設(shè)置.一般要>=一個(gè)波形周期的時(shí)間.比如1KHz的
                               //單個(gè)周期就是1/1000=1ms,保證循環(huán)時(shí)間大于1ms就行了.
  {
     tem=Get_ADC_value();  //取ADC值
     if(tem>max) max=tem; //這個(gè)周期內(nèi)的最大值即峰-峰值.
  }
你不覺(jué)得max的值就遠(yuǎn)是0嗎? if(tem>max) 里面的表達(dá)式有什么意思呢?
還有就是:5/4095*max,你去看一下數(shù)據(jù)手冊(cè),人家是要/4096的,這種公式在12位ADC可能沒(méi)有什么問(wèn)題
但如果是多次采樣進(jìn)行平均或者相加,誤差就大了
沒(méi)看仔細(xì),這是個(gè)壇循環(huán),我還以為是中斷了,前面我的理解錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-27 22:25 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-27 19:43
這個(gè)程序邏輯我覺(jué)得沒(méi)錯(cuò),但是今天測(cè)試了以下,測(cè)量結(jié)果跟實(shí)際仍舊不同

連接原理圖。供參考。R8的1K電阻是限流電阻,ADC實(shí)際測(cè)試的交流電壓是R6的5K6電阻上的交流電壓。所以先用萬(wàn)用表測(cè)試好R6上的電壓。再在單片機(jī)上驗(yàn)證就行。注意。單片機(jī)在轉(zhuǎn)換為電壓時(shí)。變量類(lèi)型要用float.比如 float Vin=5/4096*get VRMS();
adc.JPG
回復(fù)

使用道具 舉報(bào)

ID:313048 發(fā)表于 2021-7-28 10:20 | 顯示全部樓層
zqz1345444061 發(fā)表于 2021-7-27 19:35
可是交流正弦波每一個(gè)時(shí)刻的電壓值是不同的,是需要進(jìn)行多次采樣取最大值叭

連續(xù)采樣的過(guò)程中,你是將整個(gè)波形的電壓信號(hào)都給采樣了,最大值也包括在里面。除非你一個(gè)信號(hào)周期里面的采樣點(diǎn)非常少,那么有可能采不到最高電壓,所以這跟你的采樣速率有關(guān)系,假如你一個(gè)信號(hào)周期里面有100個(gè)采樣點(diǎn),那么完完全全可以采樣到最高值。
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2021-7-28 19:44 | 顯示全部樓層
純正弦波可以先精密整流然后濾波成直流來(lái)測(cè)試。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区在线观看视频 | 国产激情一区二区三区 | 性欧美精品一区二区三区在线播放 | 日日噜噜夜夜爽爽狠狠 | 国产欧美视频一区二区 | 欧美看片 | 欧美精品首页 | 中日字幕大片在线播放 | 精品国产乱码久久久久久蜜臀 | 国产高清在线 | 女朋友的闺蜜3韩国三级 | 亚洲精品一区二区三区中文字幕 | 一区二区三区av | 久久久精 | 精品国产91乱码一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 国产精品一区二区视频 | 亚洲人va欧美va人人爽 | 国产精品久久久久久久久久久新郎 | 国产中文字幕在线观看 | 亚洲一区精品视频 | 免费三级网站 | 亚洲成人第一页 | 国产一区二区三区在线看 | 欧美一区二区三区在线播放 | 国产精品一区二区在线 | 免费看黄视频网站 | 欧美专区在线 | 欧美日韩在线观看视频网站 | 久久小视频 | 午夜电影福利 | 欧美日韩a| 国产精品美女久久久久久免费 | 四虎国产| 中文字幕在线不卡 | 成人福利网站 | 91婷婷韩国欧美一区二区 | 久久久精品一区 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 国产一区二区在线免费播放 | 欧美一区二区三区视频 |