1

Arduino を特定の時間 (60 秒など) 実行し、特定のサンプリング レート (1 秒あたり 4 サンプルなど) でアナログ ピンからデータを収集したいと考えています。コードは matlab で動作するようになりましたが、arduino 環境を使用したいと考えています。変換を手伝ってください。

a_pin = 0;

fs = 4;   % sampling frequency (samplings per second)
mt = 20;  % time for measurements

ind = 1;
nind = 1;
last_beep = 0;
tic;
while toc < mt

    time(ind) = toc;
    v(ind) = a.analogRead(a_pin);

    % wait for appropriate time for next measurement
    while( nind == ind )
        nind = floor(toc*fs) + 1;
    end
    ind = nind;

end

わかりました、これは私がこれまでにスケッチしたものです。これは 5 秒ごとに 10 秒間測定しますか?

int sensePin = 0;
unsigned long starttime = 0;
unsigned long endtime = 0;
int i = 0;
int n;
const int sizeofv = 50;
int v[sizeofv];

void setup(){
    pinMode(sensePin, INPUT);
    Serial.begin(9600);
}

void loop() {
    starttime = millis();
    endtime = starttime; 

    while ((endtime - starttime) <= 10000) // do this loop for up to 1000mS
    {
        i = i + 1;
        v[i] = analogRead(sensePin);
        endtime = millis();
        delay(5000);
    }  

    for(n=0; n < sizeofv; n++)
    {
        Serial.print(v[n]);
        Serial.print('\n');
    }
    while(1) { }
}
4

2 に答える 2