Instructions
Arduino Nano Sensor Set
Veröffentlicht: 17.10.2018 Copyright by Maker Factory 13
6. DER HERZSCHLAGSENSOR
Beispielcode fortgeführt
// Zum erkannten Peak soll nur ein Herzschlag zugewiesen werden
if (isPeak == false) {
result = true;
}
isPeak = true;
} else if (rawValue < maxValue - (3000/delay)) {
isPeak = false;
// Hierbei wird der maximale Wert bei jeden Durchlauf
// etwas wieder herabgesetzt. Dies hat den Grund, dass
// nicht nur der Wert sonst immer stabil bei jedem Schlag
// gleich oder kleiner werden wuerde, sondern auch,
// falls der Finger sich minimal bewegen sollte und somit
// das Signal generell schwaecher werden wuerde.
maxValue-=(1000/delay);
}
return result;
}
// Arduino main code
int ledPin=13;
int analogPin=0;
void setup()
{
// Die eingebaute Arduino LED (Digital 13), wird hier zur Ausgabe genutzt
pinMode(ledPin,OUTPUT);
// Serielle Ausgabe Inialisierung
Serial.begin(9600);
Serial.println("Heartbeat Detekon Beispielcode.");
}
const int delayMsec = 60; // 100msec per sample
// Das Hauptprogramm hat zwei Aufgaben:
// - Wird ein Herzschlag erkannt, so blinkt die LED kurz aufgesetzt
// - Der Puls wird errechnet und auf der serriellen Ausgabe ausgegeben.
void loop()
{
stac int beatMsec = 0;
int heartRateBPM = 0;
if (heartbeatDetected(analogPin, delayMsec)) {
heartRateBPM = 60000 / beatMsec;
// LED-Ausgabe bei Herzschlag
digitalWrite(ledPin,1);
// Serielle Datenausgabe
Serial.print("Puls erkannt: ");
Serial.println(heartRateBPM);
beatMsec = 0;
} else {
digitalWrite(ledPin,0);
}
delay(delayMsec);
beatMsec += delayMsec;
}