前提・実現したいこと
入力された生体信号(心電波形)のRR間隔の時間を出力させるために
入力信号のデータを取得して、波形のグラフを作成したいです。
私の作成したコードではArduinoに入力する前にオシロスコープで取得している波形とは異なってしまいます。
コンパイル時のエラー等はありません。
入力波形は心電波形です。
解決したコード
int now=0 ;
long i=0 ; //配列番号の管理
byte j=0 ; //フラグ管理
unsigned long tNow,tPrev;
word peak;
unsigned long time ;
//int pin=10 ;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
now=analogRead(A5) ;
time = millis() ;
Serial.print(time/1000) ;
Serial.print(",") ;
Serial.println(now*0.005);
//Serial.println(now);
//delay(10);
if(now>peak) {//ピーク値更新なら
peak=now;//保存して
tNow=millis();//時間を取得
j=1;//取得した
}
if(now<peak*7/10 && j==1) {//7割りに落ちた時にピーク確定。→集計
if(i){
//Serial.print("count:");
//Serial.print(i);
//Serial.print(" peak:");
//Serial.print(peak);
Serial.print(" RR:");
Serial.print(tNow-tPrev);
Serial.println("ms");
}
tPrev = tNow ;
peak=peak*8/10;//8割以上に上がったら再取得
i++;
j=0;
}
}
補足情報(FW/ツールのバージョンなど)
ArduinoUNO
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/23 06:27
2019/01/23 07:18