Go Down

Topic: Heart-rate measurement using Arduino (Read 16900 times) previous topic - next topic



I want to make a project for measuring the heart rate from the fingertip and I also want to plot a graph over a period of time using the measurements taken. I have an Arduino Duemilanove and I am interested in what other components should I buy for the project. I know that I need an IR sensor which would send the light to the fingertip and the fingertip would reflect back to the detector but I don't really know how to connect this IR sensor to the Arduino.

I don't what to connect it to a LCD screen or something, I will just make a program on Mac and connect the Arduino to the PC.



How will the IR sensor detect a heart beat?


The oxygenated blood will reflect the light back to the detector and there's a correlation between the heart rate and oxygenated blood.


And skin won't?
You think you can detect the change of oxygen level?


The idea is that when your heart beats you have a quick rush of blood into tiny blood vessels close to your skin which makes it less transparent. This effect is easiest to observe on your finger tips or earlobe. So the IR emitter and phototransistor are placed next to each other (not much light goes through the side of the emitter!) and I put my finger on top. Light from the IR emitter illuminates my skin and is reflected


Have you checked this site (go to root before searching) or googled?
For whom does the clock pulse? It pulses for you!


Yes, but I did not really find informations about how should I connect the IR sensor to the arduino.


Feb 14, 2013, 05:54 pm Last Edit: Feb 14, 2013, 05:55 pm by terryking228 Reason: 1

This is similar, but shows a 0ne-piece module with IR LED and IR detector.  

You probably want a separate IR LED and IR Phototransistor that you can mount in a way that fits a finger..

In the example above, you probably want to use an Analog input instead of the digital input shown. You can first sample the detector about 100 times per second and graph or examine the data to see the pulses, and then decide what levels to use for pulse detection. You probably want both an upper and lower threshold for a  property of "Hysteresis" . You might want to do more sophisticated averaging and tracking to get good pulse data even when the subject moves, parameters change etc..

I will probably source a module like this after Chinese New Year for about $5:

DISCLAIMER: Mentioned stuff from my own shop...
Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info


I'm sure no expert, but I'll add my two pence...

I have seen a number of the fingertip blood O2 / Pulse sensors, and they had the LED on one side and the receiver on the other. Thus, the IR light goes through the finger rather than reflect off of it.

Just sayin'


Thus, the IR light goes through the finger rather than reflect off of it.

That may work better though having the phototransistor on the same side should still work. I have a couple of heart rate monitors on my Android phone. You hold a finger over both the camera lens and the LED flash. The camera detects the slight brightness changes as the blood pulses through the capillaries. Works very well.


@maximm , where are you located? Maybe I can send you one of these when I get them...
Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info


@ maximu where you able to solve this... i am working on the same thing and I was wondering if you were willing to share your findings thank you



Check out this site http://embedded-lab.com/blog/?p=1671 for some tips.
http://pulsesensor.com/2011/08/01/anatomy-of-the-diy-heart-rate-monitor/ has a nice guide and code. They also sell complete kits.

Don't forget to buy op-amps!

I tested the circlet from embedded-lab this weekend and it worked good.
I used 2 lm358 op-amps to amplifiy the signals. Maybe not the best op-amp but it works.

The IR-sensor was TCRT5000 (bought 60pcs for 2.7$ on ebay :) )



@olof_n thank you so much for the information, I tried the code from pulse website but it didn't work for me, I haven't try the one from Embedded Lab but I will review it! Thank you tons!


At first I did not get the code to work either because my signal was to weak.
Check your raw analog signal.

If your signal only go to say 300 you have to change some values in intrerrup.ino.

Code: [Select]

volatile int P =512;                      // used to find peak in pulse wave
volatile int T = 512;                     // used to find trough in pulse wave
volatile int thresh = 512;                // used to find instant moment of heart beat

Change 512 to your max value. I also added a third op-amp stage to get a stronger signal from the sensor.


Go Up