Microcontroller Measures Heart Rate Through Fingertip

346,233

328

284

Introduction: Microcontroller Measures Heart Rate Through Fingertip

Heart rate is a very vital health parameter that is directly related to the soundness of the human cardiovascular system. This project describes a technique of measuring the heart rate through a fingertip using a PIC microcontroller. While the heart is beating, it is actually pumping blood throughout the body, and that makes the blood volume inside the finger artery to change too. This fluctuation of blood can be detected through an optical sensing mechanism placed around the fingertip. The signal can be amplified further for the microcontroller to count the rate of fluctuation, which is actually the heart rate.

Update: For those who are interested to replicate this project, you can use Easy Pulse sensor that covers the complete sensor and instrumentation part. Easy Pulse is a photoplethysmography-based pulse sensor using a similar circuit as described in this project.

Also check out the Arduino version of this project here.

Step 1: Sensor Assembly

The sensor unit consists of an infrared light-emitting-diode (IR LED) and a photo diode, placed side by side, and the fingertip is placed over the sensor assembly, as shown below. The IR LED transmits an infrared light into the fingertip, a part of which is reflected back from the blood inside the finger arteries. The photo diode senses the portion of the light that is reflected back. The intensity of reflected light depends upon the blood volume inside the fingertip. So, every time the heart beats the amount of reflected infrared light changes, which can be detected by the photo diode. With a high gain amplifier, this little alteration in the amplitude of the reflected light can be converted into a pulse.

Step 2: Signal Conditioning Circuit

The reflected IR signal detected by the photo diode is fed to a signal conditioning circuit that filters the unwanted signals and boost the desired pulse signal. The circuit diagram above shows the IR LED (D1) and the photo diode (D2) along with the signal conditioning circuit made of two stage operational amplifiers configured as active low pass filters. The cut-off frequencies of both the filters are set to about 2.5 Hz, and so it can measure the pulse rate up to 2.5*60 = 150 bpm. The gain of each filter is about 100, which gives the total 2-stage amplification of 10000. This is good enough to convert the weak pulsating signal into a TTL pulse. Note that at the input of each OpAmp filter stage, there is a 1 uF capacitor to block any DC component in the signal. At the output is connected a LED that will blink with heart beat. The cathode of LED gets the ground path through the collector of BC547 transistor. In order to save the battery life, the transistor is turned on for 15 seconds by PIC16F628A microcontroller while the measurement is going on. The number of pulses counted within this interval is multiplied by 4 to get actual beats per minutes (bpm).  

Step 3: Microcontroller and Display Circuit

The PIC16F628A runs at 4.0 MHz using an external crystal. The two tact switches are used for Start and Clear functions. You should rest your fingertip on the sensor assembly before pressing the Start button. You can use fore finger or middle finger for this. Once the Start button is pressed, the microcontroller turns on the BC547 transistor (in the signal conditioning circuit). This turns the IR LED on, and the LED starts blinking with the fluctuation in the blood volume inside finger arteries. After 15 seconds, the measurement is completed and the result is displayed on a 3-digit seven segment LED display.

Step 4: Device in Action


This video shows the heart rate measuring device in action.

The firmware for PIC16F628A was developed in C and compiled with mikroC Pro for PIC compiler from mikroElektronika.
You can find the source code and HEX files attached here with or can also view the program on my blog site.
Microcontroller Contest

Runner Up in the
Microcontroller Contest

Share

Recommendations

  • Fix It! Contest

    Fix It! Contest
  • Water Contest

    Water Contest
  • Creative Misuse Contest

    Creative Misuse Contest

284 Discussions

Hello, I'd like to improve this project, what kind of diode and photodiode adid you use? Are there any difference?

Done it, it was my first bigger project, and maybe too hard for beginner. But code is working only on PIC16F628A, but not on a PIC16F628

WP_20150105_14_40_48_Pro[1].jpg
18 replies

Hello to you, sir. I find your project 'heart beat monitoring system using microcontroller' is similar to my project and would like to see your project as a revision. Would you mind sending the list of components, circuit diagram and full program? Here’s my email abkimie@gmail.com. Thanks you so much

Can u please sendme the details about this project to my mail ..... i am doing this as my main project so please send me....my mail is navyvijay187@gmail.com

Hello
If u really made it plZ snd me code and pcb layout....To my mail--- khushlingayat25@gmail.com

sir,can u please send me this poject details to my mail id ishuuabi@gmail.com

could you please send me the programming commands of this project.

mail it to viddu_cm@yahoo.com

sir can you please send mi the source code and if possible please provide me entire details, mail id- chinmayshinde95.co.in@gmail.com

hello brother if u had really made it then plz mail me full details at .

vipulverma266@gmail.com

hello did you get the details on microcontroller measures heart rate through finger tip and if so can you please send me the details my email is imaniamani10@yahoo.com

Hi

Can you send me the code for the project. Thanks.

Hey i have a question have made the IR led at the sensor on/off(blinking) for few secs or just kept on ???

what is the logic used to calculate heart rate ?

did u have the source code and the schematic??i want it please iqramkyoya@gmail.com

yes, but everything is in subscription

hello sir ! do u have any kind of project details? can u send to me

bungatulip6617@rocketmail.com

tq sir..

good day sir, can you please send me the pcb layout that you made im kind of new to this project. please help me.

email add: derek.gabs@gmail.com