나는 심장 박동을 측정하기 위해 내 자신의 Arduino 기능을 작성했습니다. 하지만 실행하면 제대로 작동하지 않습니다. 심장 박동수를 계산하기 위해, 나는 다음과 같은 계산을 할 필요가 :Arduino 맞춤식 기능이 작동하지 않습니다.
heart_Rate = 60000/period;
을하지만 기간 값이 축적 계속 것을 깨달았다. 그 결과 심장 박동이 감소합니다. 그러나 함수를 만들지 않고 테스트 할 때 (내부 void 루프) 완벽하게 작동합니다.
이 내 아두 이노 코드입니다 : 내가 축적의 기간을 방지하려면 어떻게
int H_val = 0;
void setup() {
Serial.begin(9600);
}
float HeartRate() {
int threshold = 750;
int raw_ecg = 0;
int E_input = 0;
float period = 0;
unsigned long p_time = 0;
unsigned long c_time = 0;
int H_rate;
int oldvalue = 0;
oldvalue = raw_ecg;
raw_ecg = 0;
raw_ecg = analogRead(A0);
if (oldvalue < threshold && raw_ecg >= threshold) {
p_time = c_time;
c_time = millis();
period = c_time - p_time;
}
if (period <= 0) {
int H_rate = 0;
} else {
int H_rate = 60000/period;
return H_rate;
}
delay(2);
}
void loop() {
H_val = HeartRate();
Serial.println(H_val);
}
?
왜 float를 반환하고 코드를 작성하여 int를 반환 할 함수를 정의하겠습니까? 함수의 반환 형식은 실제로 반환하는 형식과 일치해야합니다. –
죄송합니다. Imesh Nirangana의 코드에서 오류를 언급했지만 잘못 이해할 수 있음을 알았습니다. 나는 해결책을주기 위해 그것을 바꾼다. –