2015-06-04 58 views
0

是否有人有一段代碼來測量ADC樣本在一秒內可實現的最大速率?我明白在Arduino中有一個millis()函數。在一秒內測量ADC採樣的最大速率

unsigned long start, finsihed, elapsed; 

void setup() { 
    Serial.begin(115200); 
} 

void loop() { 
    int sensorVal = analogRead(A0); 
    Serial.println(sensorVal); 
    Serial.println("Start..."); 
    start = millis(); 
    Serial.println("Finished"); 
    elapsed = finished - start; 
    Serial.print(elapsed); 
    Serial.println(" milliseconds elapsed"); 
    Serial.println(); 
} 
+1

該數據表說15kSps。這個價值對你沒有好處嗎? –

+0

只要實踐和學習。這就是我想知道的。 – gooner1990

+0

只需設置最大值。率並檢查溢出。然後降低使用平分直到溢出消失。在環路中讀取ADC樣本大多數時間是一個壞主意,因爲樣本幾乎不會有相同的間隔。對於剩餘使用情況,最大值利率沒有實際的變化,因爲它們不是等分的。 – Olaf

回答

0

如果您試圖找出您可以在一秒內處理和ADC的最大次數,那麼您應該嘗試除了每次打印一個值之外的東西!

例如,您可以使用一個for循環,每讀取10,000次就會計算一次,例如,

start = millis() 
for(int i = 0; i < 10000; i++){ 
    analogRead(A0); 

} 
finish = millis() 
total = start - finish 
print("This trail took "); 
print(total); 
print(" miliseconds!"); 

無獨有偶10,000資料片here告訴你的次數Arduino的可以運行的模擬讀出第二!