ArduinoIDEでプログラムを作っていると、AD変換の時間とか余り意識しないのだが、一体どの程度の時間で処理できるのかと気になった。
一回あたりは早いだろうから、10000回ループさせて出力させてみたところ、10000回で1120msという結果。
つまり、一回あたり、0.112msでADCが完了するということである。サンプリング速度はだいたい9kHzか。
十分な速度である。気になるのは、シリアル通信しているあいだCPU待ってるんじゃないかと思うところかな。こういう細かいところを考えるとArduinoでは難しいのかもしれないが、簡単に作れるのがArduinoなので、このへんはしょうがない。
プログラム:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
long ADCValue;
int LevegGaugeValue;
ADCValue=0;
for(int i=0;i<10000;i++){
ADCValue += analogRead(A0);
}
Serial.print(ADCValue);
Serial.print(",");
Serial.println(millis());
}
10回平均にして115200bpsで読み込むとこんな感じでハムノイズっぽいのが拾えているようである。