Я пытаюсь завершить код определения частоты сердечных сокращений, который должен определять пик для каждого цикла и использовать его для расчета частоты сердечных сокращений.
void setup() {
Serial.begin(9600);
}
void loop() {
int i = 0;
int peak = 0;
unsigned long startTime = 0;
unsigned long endTime = 0;
startTime = millis();
//This section of the code compares the incoming sensor values to an initial value and replaces that initial value with a higher sensor value and does this for 2 seconds
while(millis() - startTime<=2000){
if(peak <= analogRead(A0)){
peak = analogRead(A0);
}
}
endTime = millis();
Serial.println(peak);//this is the highest value it found after 2 seconds
//This section of the code is supposed to take the peak value from above and compare it with more sensor values for 3 seconds and increment the counter every time the peak value and the sensor value are equal.
while(millis() - endTime <= 3000){
if(analogRead(A0)== peak){
i++;
}
}
Serial.println(i);
}
Проблема, с которой я столкнулся, заключается в том, что я получаю очень противоречивые числа для i, что
до 500 и до 10. Я не уверен, почему это происходит.