Nr.21 – Herzfrequenzmessung

Herzfrequenzmessung mit Arduino

Mit einem Herzfrequenzmesser am Arduino Mikrocontroller kann man seinen Puls messen und die Messwerte grafisch darstellen.

Ein sehr einfach zu verwendender Sensor ist dabei der „Pulsesensor„. Dieser Sensor gibt ähnlich wie ein Temperatursensor lediglich eine Spannung an den analogen Port eines Arduino Mikrocontrollers weiter. Beim detektierten Herzschlag ist dieser Spannungswert entsprechend höher.

Dieser Spannunsgverlauf lässt sich mit Hilfe des Serial-Plotters in der Arduino-Software sehr gut darstellen und sieht bspw. so aus:

Man erkennt in diesem Spannungsverlauf des Sensors deutlich den menschlichen Herzschlag.

Aufgabe: Eine LED soll im Takt deines Herzens aufleuchten.

Material: Arduino/ Herzfrequenzsensor – Materialbeschaffung: www.funduinoshop.com

Aufbau: Auf der Rückseite des Sensors sind drei Kabel angelötet. Auf der Platine erkennt man die Zeichen: „+“ , „-“ und „S“, wobei an + und – die Spannungsversorgung vom Arduino angeschlossen werden muss und die Leitung mit der Bezeichnung „S“ wird am analogen Eingang A0 angeschlossen.

Nun folgt der Code, mit dem die Messwerte des Sensors grafisch dargestellt werden kann.

Sketch 1:

int SensorPin = A0;  // Signalleitung an Analoa A0  
int LED=13; // LED an Port 13 wird verwendet


int Sensorwert;                // Variable für den Sensworwert
int Grenzwert = 510;       // Grenzwert, ab dem die LED an Pin13 später leuchten soll

void setup() 
{
pinMode(LED13,OUTPUT);    // Pin 13 ist ein Ausgang, damit die LED mit Spannung versorgt wird
Serial.begin(9600);       // Serielle Verbindung starten, damit Daten am Seriellen Monitor angezeigt werden können  
}

void loop() 
{
Sensorwert = analogRead(SensorPin);  // Sensorwert vom Sensor auslesen und unter der Variablen "Sensor" abspeichern
Serial.println(Sensorwert);          // Sensorwert über die Serielle Schnittstelle an den PC senden.

if(Sensorwert > Grenzwert) // Hier wird eine Verarbeitung gestartet. Wenn der Sensorwert über dem Grenzwert ist...
{                          
digitalWrite(LED13,HIGH);  // ...dann soll die LED leuchten
} 
else                       // Ansonsten...
{
digitalWrite(LED13,LOW);    //  ...ist die LED aus
}

delay(10);  // Kurze Pause im Code, damit die Messwerte besser zu erkennen sind.
     
}

Jetzt öffnet man in der Arduino-Software im Menü „Werkzeuge“ den Seriellen Plotter – nicht den seriellen Monitor – und befestigt den Sensor am Körper. Es eignen sich Stellen, an denen die super-helle LED bis zu einer pulsierenden Ader „durchleuchten“ kann. Gute Stellen sind bspw. die Fingerkuppe des Ringfingers, oder das Ohrläppchen. Der serielle Plotter nimmt zunächst ein paar Messwerte auf und stellt sich dann automatisch so ein, dass die eingelesenen Messwerte Ideal dargestellt werden. Das kann ggf. bis zu 10 Sekunden dauern. Sollte kein klares Bild vom Herzschlag erscheinen, dann muss der Sensor an einer anderen Körperstelle angebracht werden. Auch wenn das Signal schon gut aussieht, kann es sein, dass die LED an Pin13 noch nicht im richtigen Rhythmus aufleuchtet. In dem Fall muss der Grenzwert für die LED verändert werden.

Einstellen des Grenzwertes für die LED:

Auf dem folgenden Bild erkennt man, dass die eingelesenen Messwerte im Bereich zwischen 500 und 530 liegen. Die eigentlichen Herzschläge liegen im Bereich zwischen 515 und 525. Dies ist der Bereich, in dem auch die LED auf dem Mikrocontroller leuchten soll, um den Herzschlag als Lichtsignal darzustellen. Daher wäre für diese Messwerte ein Grenzwert von bspw. 520 sehr gut geeignet. Die Messwerte sind jedoch stark von der Körperstelle und Person abhängig, an der die Messung durchgeführt wird.

Auf der Internetseite www.pulsesensor.com gibt es weitere Anleitungen und detaillierte Informationen zu dem Sensor.

Um eine Pulsmessung durchzuführen mit einem Zahlenwert als Ergebnis, muss die Zeit zwischen zwei Herzschlägen gemessen und angezeigt werden.