Heart rate data can be really useful whether you're designing an exercise routine, studying your activity or anxiety levels or just want your shirt to blink with your heart beat. The problem is that heart rate can be difficult to measure. Luckily, the Pulse Sensor Amped can solve that problem!
The Pulse Sensor Amped is a plug-and-play heart-rate sensor for Arduino. It can be used by students, artists, athletes, makers, and game & mobile developers who want to easily incorporate live heart-rate data into their projects.It essentially combines a simple optical heart rate sensor with amplification and noise cancellation circuitry making it fast and easy to get reliable pulse readings. Also, it sips power with just 4mA current draw at 5V so it's great for mobile applications.
Simply clip the Pulse Sensor to your earlobe or finger tip and plug it into your 3 *or *5 Volt Arduino and you're ready to read heart rate! The 24" cable on the Pulse Sensor is terminated with standard male headers so there's no soldering required. Of course Arduino example code is available as well as a Processing sketch for visualizing heart rate data.
The v1.4 example code for the Pulse Sensor was designed to be used with an Atmega328P’s interrupts. You can have issues with the example code when using different microcontrollers. I had compile errors when trying to use the example code on these microcontrollers: Atmega32U4 on the Pro Micro 5V/16MHz, Pro Micro 3.3V/8MHz, FioV3, LilyPad Arduino USB - ATmega32U4, Arduino Leonardo, Arduino Yun; SAM3X8E on the Arduino Due; SAMD21. There were issues compiling the example code because the pulse sensor’s code was expecting to use the interrupt timers defined for the Atmega328P.
To use the pulse sensor with the processing sketch, you need to upload the Arduino example code first.
Then, in the processing sketch, you need to change the 0 in the array where it says:
new Serial(this, Serial.list(), 115200);
The processing sketch will output the COM ports available in an array.
This is a common example of the enumeration on a desktop computer:
Serial.list() = COM1 Serial.list() = COM2 Serial.list() = COM33 // this is our sensor
In this instance we change the example code to say:
new Serial(this, Serial.list(), 115200);
Note: Many laptops will have your sensor in the  position naturally
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 13 ratings:
2 of 3 found this helpful:
I couldn't get this device to work consistently using the example code in the product description. (the 1dot1 version). If you look on the manufacturer's github repository you will find a "1dot4" version which seems to pick up the pulse signal MUCH faster, and without having to position your finger JUST right. It also seems to filter out false signals much better than the 1dot1 code.
0 of 2 found this helpful:
A very little device with a vehe only thing to improve is the glue of the velcro pad.
Got the Arduino code (1dot4) and Processing app (1dot1) working just fine, with only a small tweak required in the Processing app to identify my correct Serial port.
I don't have a lot of high-impact activities planned for this, but it seems sturdy enough for my uses. The kit instructions encourage you to use copious amounts of hot glue on this to attach accessories and make it sturdier and water resistant, so I think it could work well even for experiments that involve some wear and tear.
The only disappointment: the code required to run this is a lot more involved than I'd anticipated. Turns out it's trickier than I thought to measure pulse rate, and involves a lot of interrupts and custom code that's well beyond my abilities to write from scratch! So, unless you're an electrical engineering guru, expect to be sticking with the stock sample code.
This pulse sensor is pretty good and it accurately captures and displays the pulse waveform when used on the finger or the wrist. The price seems a bit steep though. Looking at the schematic which consists of one op amp, one photodiode, and one LED, this should go for under $20.
I needed this sensor for a school project. It worked perfectly with my Arduino Esplora and was very easy to use.
I picked up a couple pulse sensors for use with an Arduino project, and have found them to be pretty reliable. They've shown a tendency to detect beats that aren't there when jostled, despite a thoroughly rigid layer of hot glue on the back and around the connections. On the off chance that this is a power issue on my part, I'm adding a cap to the circuit, just in case.
The library uses the same timer as the tone() library (Timer2), so I had to adapt it to work with Timer1. This wasn't a big deal but might be a lot to ask of an arduino or microprocessor newbie.
This pulse sensor works as advertised, but it's a little "janky" at times. Sometimes it starts picking up the wrong rhythm somehow and you have to readjust your finger so that it finds your heartbeat again.
0 of 1 found this helpful:
Don't waste your money on this sensor. I am using the most recent version of the demo code. I verified the accuracy of this sensor against a TomTom Spark heart rate monitor watch which also uses an optical heart rate sensor. I also verified the sensor against a Garmin workout watch that uses a heart rate monitor embedded in a chest strap. I have validated both of these watches against an EKG machine I have in the surgical simulation lab at the university where I work. The accuracy of these two workout watches are statistically "equivalent" to the more accurate EKG.
When this sensor is attached to your finger, the output isn't horrible. The intraclass correlation coefficient between the sensor and the TomTom watch was statistically significant, indicating that the sensor is sufficiently accurate. However, I wanted to use this sensor to measure heart rate as a function of surgical task difficulty. To do the surgical task, you gotta use your hands... so mounting this sensor on a finger won't work. I used the included ear lobe clip and ran a validation test. The sensor reports readings that vary between 10 BPM and 200 BPM over a 60-second time period. The intraclass correlation coefficient is essentially zero... indicating that it is wildly inaccurate. I tried mounting this optical sensor on the back of my wrist (the same place where the optical sensor in the TomTom is located) and this sensor isn't accurate. I tried mounting this sensor to the underside of my wrist and that didn't help accuracy. I tried putting it over my heart and that didn't help accuracy.
If you want a cutesy sensor that does various non-important tasks based on some estimation of heart rate, this sensor is fine. But if you need accurate data... keep on looking.
This device is really typically used more in hobbyist environments. The accuracy can be varied widely depending on which position that you use them in.
Making sure that you're using the most recent version of the pulse sensor code can help increase accuracy as well. https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino/tree/master/PulseSensorAmped_Arduino_1.5.0
The hardware on this sensor is excellent, and gives you the ability to get started coding to access more complex biodata from the heart. Of course a photopleth isn't as accurate as an EKG/ECG but this is about as accurate as a pleth gets in my opinion!
Sparkfun service is incredibly amazed me. International purchase has no problem at all. The parcel arrived within a week. And yet early than estimated . All the components were packed nicely and sealed . I'm really happy with the service. Definitely will purchase on sparkfun with my next project. Thank you so much.
0 of 2 found this helpful:
With its small frame it can fit in most projects. Drawback is that it is a bit limited in functionality.
Using the Getting Started Guide and the example code, I got everything working in a few minutes. I haven't been able to use it in my actual project yet, but with the example code it should be pretty easy.