Microcontroller Measures Heart Rate Through Fingertip

360,825

336

292

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

1 Person Made This Project!

Recommendations

  • Bikes Challenge

    Bikes Challenge
  • Remix Contest

    Remix Contest
  • Make it Move Contest 2020

    Make it Move Contest 2020

292 Discussions

0
galvakojis
galvakojis

5 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
0
AmirhosseinA
AmirhosseinA

Reply 10 months ago

it dose not work on Avr?!

0
gulevili
gulevili

Reply 2 years ago

hello, do you have the details of this project? can you please send me?

vildany.97@gmail.co

thanks in advance

0
AbK5
AbK5

Reply 3 years 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
Navi lnm
Navi lnm

Reply 3 years 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
Khushall
Khushall

Reply 3 years ago

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

0
Ishuu abi
Ishuu abi

Reply 3 years ago

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

0
VidyaC4
VidyaC4

Reply 3 years ago

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

mail it to viddu_cm@yahoo.com

0
chinmays14
chinmays14

Reply 3 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
Vipulv5
Vipulv5

Reply 4 years ago

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

vipulverma266@gmail.com

0
ImaniA1
ImaniA1

Reply 4 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
ShaileshS17
ShaileshS17

Reply 4 years ago

Nice

0
mbaydoun
mbaydoun

Reply 4 years ago

Hi

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

0
vinay0745
vinay0745

Reply 5 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
galvakojis
galvakojis

Reply 5 years ago on Introduction

keep on, your blood pressure will "imitate the blinking"

0
vinay0745
vinay0745

Reply 4 years ago

what is the logic used to calculate heart rate ?

0
IqramR1
IqramR1

Reply 4 years ago

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

0
galvakojis
galvakojis

Reply 4 years ago

yes, but everything is in subscription

0
bungasakura
bungasakura

Reply 4 years ago

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

bungatulip6617@rocketmail.com

tq sir..

0
derekgabs
derekgabs

Reply 5 years ago on Introduction

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