[問題] arduino 取樣問題

看板ASM (組合語言)作者 (O-H)時間10年前 (2015/05/21 22:14), 10年前編輯推噓3(3012)
留言15則, 5人參與, 最新討論串1/1
大家好~最近再研究利用arduino做類比取樣的問題 使用訊號產生器做輸入訊號~輸入正弦波 在低頻的時候 可以把數值一個一個透過serial顯示出來 並且從取樣的數值可以大概猜測出這是一個正弦波來 但是來到1k Hz 之後就量測不出完整的波形了 有沒有先進 可以稍微講一下改善的方向? 謝謝 我的方法一開始是利用 DELAY(1) 每一毫秒去做取樣 這個在10HZ的時候 波形都還看得清楚~ 但是來到100HZ 之後就沒法將正弦波的每段訊號擷取 再後來 為了提高擷取頻率 所以使用了delayMicroseconds(3) 每三微秒 取擷取訊號~3微秒聽說是極限 可似乎狀況未見改善,所以後來索性就直接把delay拿掉 直接不斷取樣 可獲得的訊號還是一樣會有誤差的問題,所以才想說上來問問 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.206.167 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1432217662.A.EF8.html

05/21 22:21, , 1F
先說你取樣頻率是多少吧?
05/21 22:21, 1F
※ 編輯: hcf456 (123.193.206.167), 05/21/2015 22:35:21

05/22 05:57, , 2F
Delay的時間不是取樣頻率
05/22 05:57, 2F

05/22 05:59, , 3F
1K hz 需要 0.5 ms 的取樣率
05/22 05:59, 3F

05/23 15:48, , 4F
arduino使用的atmega328or2560,一個取樣花13cycles
05/23 15:48, 4F

05/23 15:51, , 5F
加上analog.read的做法,從AD request到轉換完畢
05/23 15:51, 5F

05/23 15:51, , 6F
系統會呈現idle狀態,更耗費時間。
05/23 15:51, 6F

05/23 15:53, , 7F
另外就是用USART去print資料也有速限,所以...
05/23 15:53, 7F

05/23 15:54, , 8F
上述有誤之處,請其他前輩更正,感謝。
05/23 15:54, 8F

05/24 00:48, , 9F
這直覺可以分兩個部分去看
05/24 00:48, 9F

05/24 00:49, , 10F
一是你的ADC取樣的時間最少要大於訊號變化的2倍(奈奎斯特)
05/24 00:49, 10F

05/24 00:50, , 11F
二是你用UART傳出來的速度問題
05/24 00:50, 11F
鮑率會影響嗎~假設頻率1K的話

05/24 00:51, , 12F
這邊要看你的serial傳輸速度多快
05/24 00:51, 12F

05/24 00:51, , 13F
且看你一次傳多少筆數據去顯示
05/24 00:51, 13F
感謝上面的前輩指點 我會再研究 屆時跟大家分享~ ※ 編輯: hcf456 (123.193.206.167), 05/24/2015 21:56:29

06/20 14:32, , 14F
Serial.print會大大增加運算時間,建議把它拿掉用示波
06/20 14:32, 14F

06/20 14:32, , 15F
器看
06/20 14:32, 15F
文章代碼(AID): #1LNUW-xu (ASM)
文章代碼(AID): #1LNUW-xu (ASM)