Homebrew Arduino Pulse Monitor (Visualize Your Heartbeat)

FeaturedContest Winner
Picture of Homebrew Arduino Pulse Monitor (Visualize Your Heartbeat)
wmplayer 2014-04-21 11-10-44-97.png
Movies look cool with those EKG (electrocardiogram), the one that beeps and detects heart activities. A few months ago, we had to shoot a hospital scene for our school project. We needed an EKG instrument. To keep the movie authentic, we didn't want to fake the readings so we made the next best thing, a pulse monitor. Since my dad is a doctor he gave me some advice to design the pulse monitor. 

Let me clarify this to you. This project works and can actually monitor your pulse. Due to the lack of research and experimentation, the homebrew pulse monitor cannot be used for medical purposes. 

What Can You Do With It?
You can make a lie detector/ polygraph and tell who's lying or not. When a person lies, you'll notice a sudden change on the graph.

What Does This Guide Include? 
- Arduino Codes & Processing 2 Codes
- Steps on making a pulse sensor
- The Virtual Graphing Software
- Schematic Diagrams

What Do I Need To Make This Project?
- A Grippy Clothes Hanger
- Clear/ Bright Red LED
- LDR (Light Dependent Resistor)

Future Questions:
Why isn't mine working? For some reason LDRs (light dependent resistors) are not standard in resistance ratings. You'll need a some tweaking to pull off the project, it may require experience with Arduinos and electronics.

This project is inspired by Make Magazine's pulse monitor although my version didn't use a LM324 Op-Amp chip. Their tutorial will work on my setup. 

Make: Full Tutorial
Programming Stage:
Remove these adsRemove these ads by Signing Up

Step 1: Find The Perfect Colthes Hanger

Picture of Find The Perfect Colthes Hanger
This project works best with rubber padded hangers. Luckily "Marks & Spencer" gives away these hangers for free.

Step 2: Cut The Clips

Picture of Cut The Clips
Cut the clips off the hanger with a pair of heavy duty shears. 

Step 3: Disassemble The Clip

Picture of Disassemble The Clip
Get your multitool and disassemble the clip.

Step 4: Drill Holes

Picture of Drill Holes
Drill a hole on the exact center of the clip's rubber pads.

Step 5: Install The LDR

Picture of Install The LDR
Bend the LDR's leads then mount them in place. Finally use hot glue to keep the LDR from moving. 
Timofte Andrei10 months ago

now, you can use this example to make a device that can be attached on the wrist and can monitor the hearth rate every second and can log everything on an SD card. :D

ASCAS (author)  Timofte Andrei10 months ago

Brilliant! And I'll also add a loud alarm when the sensor detects an irregular pulse rate. It's good for people who have a heart condition.

amorarun ASCAS10 months ago

Good 'ible...
btw loud alarm to indicate irregular pulse rate for people with heart condition!!?!!
Something subtle should be fine.. Perhaps a light or a vibration motor??

you need a lower pitch sound to alert events. light can also be a problem for people with heart condition.

SaarishtT21 days ago

Arduino IDE Serial Monitor shows a reading around 450. Can't be possible.

SaarishtT21 days ago

Arduino IDE Serial Monitor shows a reading around 450. Can't be possible.

arombouts2 months ago

Hey, I want to use this for a project, but I need to see a bpm, is it possible to make it display a bmp, and a graph of the bpm over an interval?

Raitis made it!4 months ago

I did my take with the heart rate sensor as well, thanks for inspiration!

shannon.kai.96 months ago

how to change the port number?

metalix8 months ago
Umm, where's the diagram
Jan_Henrik9 months ago

Awesome, have to try it!

kyokorn10 months ago

Hi the LDR the value is 2 Mohms or 10 Mohms? BR

hunter99910 months ago

Now that, is what I call awesome! Thanks for sharing :-)

ufang10 months ago

black UNO is pretty cool how did u get it

ASCAS (author)  ufang10 months ago

It's a clone. I got it form Alexan, an electronic store here in the Philippines.

ufang ASCAS10 months ago
oh when i open it i just found the black uno picture show in the main page but no entrance to check the items and no way to place my order. however i turn to google it and got the similar one named sainsmart. i'm not sure it's the one because it's difference. i don't know. the core?
marcoboers10 months ago
Your setup doesn't work because of wrong wiring, as far as I can see from image in step 7, you should use the LDR in a voltage devider. In you're case the resistance changes but because there is no voltage devider the only thing changing is the amount of current flowing in the analog input of the arduino. You should do it as follow: +5V - LDR -node Vo with line to analog input, and a resitor going to ground. So when the resistance of the LDR changes the ratio of the resistance changes and therefore the voltage at Vo and your analog input changes with results in difference in reading from the arduino. For the resistance needed you should probably try measure the resistance of LDR and take a resistor around that value, or try some values for best results. Don't go to low because then you wille get a current from the 5v to ground and you want to keep that small.
Quite simple to fix without the external resistor, it can be done in software. Just enable the pull-up, or in this case, the pull-down resistor, these are build in. You can google, but if I'm correct you can do this : digitalWrite (-an input-, HIGH); to enable the internal pull-up
Mr. E Thom Kouwen10 months ago

You would need a pull down for the schematic shown, even then A CDS and red led will never give that square trace. That is from an IR led and photo transistor most likely.

I am going to correct myself. The atmega only has internal pull-up's, so this setup can indeed not work, as pointed out by two other people already, considering the software is a copy of MAKE's, that's going to require editing aswell.
Mr. E10 months ago

This project simply does not work , as pointed out by Marcoboers 3 days ago. The traces shown are not from this project but just copied from the Make project (as is just about everything else).

agis6810 months ago

brilliant extra amazing....iam speachless!!! voted on both compets....i wish you to be the among the winners


ASCAS (author)  agis6810 months ago

Thanks bro!

andrea biffi10 months ago

That's an awesome project!!

ASCAS (author)  andrea biffi10 months ago

Hehehe, thanks! :)

loki201210 months ago

Nice soldering job!

LockonStratos10 months ago


I used to be in a pulse wave project in my tutor's lab for a long time and now it seems I have totally misunderstood the meaning of such kinds of science project. I got my mind stuck in the previous ideas of other's and don't dare to test my own. Thank you so much for showing us this great project.

dbuckley610 months ago
Great job. Loads of "proper" pulse oximeters are fiddly to get to read at times; especially if your hands are cold. Try on multiple fingers, earlobe before deciding that equipment is faulty
andrea biffi10 months ago

Hi Angelo, something seems to be missed in last step... I read "Programming Stage:" then nothing more...

ASCAS (author)  andrea biffi10 months ago

Oh, thanks for spotting that!