Microcontroller Measures Heart Rate Through Fingertip

349,444

330

288

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

  • Big and Small Contest

    Big and Small Contest
  • Toys Contest

    Toys Contest
  • First Time Author

    First Time Author

288 Discussions

0
None
iomair

4 days ago

Could you please send me the components list? To my email i-omair@hotmail.com and I want to ask you about the way connecting these two circuit together? Thank you

0
None
ganeshaaraj

Question 5 weeks ago

sir,i am doing this as my lab project,can you please send me the pcb design and component list and other important stuff to my mail ,gganeshaaraj@gmail.com

0
None
IlariaM5

Question 3 months ago on Introduction

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

0
None
galvakojis

3 years ago on Introduction

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
14 replies
0
None
AbK5galvakojis

Reply 1 year ago

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

0
None
Navi lnmgalvakojis

Reply 1 year ago

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

0
None
Khushallgalvakojis

Reply 1 year ago

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

0
None
Ishuu abigalvakojis

Reply 1 year ago

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

0
None
VidyaC4galvakojis

Reply 1 year ago

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

mail it to viddu_cm@yahoo.com

0
None
chinmays14galvakojis

Reply 2 years ago

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

0
None
Vipulv5galvakojis

Reply 2 years ago

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

vipulverma266@gmail.com

0
None
ImaniA1Vipulv5

Reply 2 years ago

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

0
None
mbaydoungalvakojis

Reply 2 years ago

Hi

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

0
None
vinay0745galvakojis

Reply 3 years ago on Introduction

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

0
None
vinay0745galvakojis

Reply 2 years ago

what is the logic used to calculate heart rate ?