Arduino 在一秒钟内测量ADC采样的最大速率
是否有人有一个代码片段来测量一秒钟内可达到的最大ADC采样率。我知道Arduino中有一个millis()函数Arduino 在一秒钟内测量ADC采样的最大速率,arduino,Arduino,是否有人有一个代码片段来测量一秒钟内可达到的最大ADC采样率。我知道Arduino中有一个millis()函数 unsigned long start, finsihed, elapsed; void setup() { Serial.begin(115200); } void loop() { int sensorVal = analogRead(A0); Serial.println(sensorVal); Serial.println("Start..."); st
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();
}
如果您试图计算出一秒钟内处理和ADC的最大次数,那么除了每次打印一个值外,您可能还应该尝试其他方法 例如,您可以使用一个For循环,该循环每读取10000次就计数一次,例如
start = millis()
for(int i = 0; i < 10000; i++){
analogRead(A0);
}
finish = millis()
total = start - finish
print("This trail took ");
print(total);
print(" miliseconds!");
start=millis()
对于(int i=0;i<10000;i++){
模拟读数(A0);
}
finish=millis()
总计=开始-结束
印刷品(“这条线索”);
印刷品(总数);
打印(“毫秒!”);
巧合的是,10000是数据表告诉您arduino每秒可以运行模拟读取的次数 数据表显示为15kSps。这种价值观对你没有好处吗?只是认真练习和学习。这就是我想知道的。只需设置最大速率并检查溢出。然后使用二等分降低,直到溢出刚好消失。在循环中读取ADC样本在大多数情况下都是一个坏主意,因为样本的间隔很难相等。对于reming用例,最大速率没有实际的interest,因为它们的间隔不是相等的。当然,使用millis()。不,你不能测量A/D比率,你只能测量报告比率。这在很大程度上取决于串行端口波特率。这很好,那是你唯一真正关心的。这也是在电线的另一端这样做的一个很好的理由。