Nr. 21 – Herzfrequenzmessung

Inhaltsverzeichnis

Herzfrequenzmessung mit dem Arduino Mikrocontroller

Einleitung

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 „Puls-Sensor“. 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 Spannungsverlauf lässt sich mithilfe des Serial-Plotters in der Arduino-Software hervorragend darstellen und sieht bspw. so aus:

Ausgabe des seriellen Plotters bei Messung der Herzfrequenz

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

Aufgabe

Eine LED soll im Takt deines Herzens aufleuchten.

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.

Bild von dem Puls-Sensor bei der Messung der Herzfrequenz

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

Beispielsketch

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(LED,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(LED,HIGH);  // ...dann soll die LED leuchten
} 
else                       // Ansonsten...
{
digitalWrite(LED,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, z.B. 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

Ausgabe des seriellen Plotters bei der Herzfrequenzmessung

Auf oben stehendem 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 optimal 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.

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 2.000 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
NEU