Arduino measures heart beat rate from fingertip
The PIC16F628A based heart rate meter is one of the most popular projects published on Embedded Lab. In this article, I am going to show how to replicate the same project using a simpler platform like Arduino. The Arduino heart rate meter will use Arduino Uno, Easy Pulse Plugin, and 4-digit SPI seven segment LED display module. It computes the heart beat rate by processing the analog pulse signal output from the Easy Pulse Plugin sensor and displays it on the seven segment display module. The heart beat rate is refreshed every ~3 sec.
What will you need?
The following things are required to build this project.
2. Easy Pulse Plugin : A pulse sensor based on Photoplethysmography principle. It directly plugs on to the left-side headers of Arduino Uno.
3. 4-digit serial seven segment display: It is a MAX7219 based serial segment LED display that is easy to interface with Arduino using only 3 I/O pins.
4. Few male-to-female jumper cables.
The hardware setup of this project is pretty simple and straightforward. Here are the instructions to be followed for setting up the connections between Arduino, Easy Pulse Plugin, and the display.
- On Easy Pulse Plugin module, place the 2-pin shunt jumpers JP1 and JP2 to 5V and A0 positions, respectively. This configuration will allow the module to use the 5V power supply from the Arduino Uno board and connect the pulse output signal to the Arduino’s A0 ADC channel, when it is plugged in to the Arduino Uno board.
- Insert the fingertip pulse sensor jack to the 3.5mm stereo socket on the Easy Pulse Plugin board. Make sure it is inserted well as shown in the picture below. Then plugin the sensor module on to the left headers of the Arduino Uno board such that the A0 and A1 pins of the sensor module go into the A0 and A1 analog pins of the Arduino.
- Connect the 4-digit seven segment LED display to Arduino Uno as follows:
- The following picture shows the complete setup of this project.
- Load the project sketch to the Arduino board using Arduino IDE. You can download the Arduino sketch for this project from the link below.
- Wear the sensor on your index fingertip as shown in the picture below. Sit on a chair with your hand resting on some support. The heart rate meter will display the heart beat rate in beats per minute (bpm) on the seven segment LED module. If Arduino didn’t receive any pulse signal from the sensor, it will display ‘EEEE’ on the seven segment as an error message. Otherwise, the heart beat rate is refreshed every 3 seconds.
If you keep seeing ‘EEEE’ on display, that means that the Arduino is not receiving a good pulse signal from the sensor. You can try a couple different things like make sure the sensor jack is plugged in well and increase the gain of the instrumentation amplifier on Easy Pulse Plugin board by turning the potentiometer counter-clockwise.
The pulse signal processing software loaded into Arduino works the same way as described in our chipKIT based pulse meter project which follows the following steps in computing the heart beat rate. Three consecutive peaks are identified in the photoplethysmography output signal using the principle of differentiation (finding maxima where the curve changes the slope from positive to negative), and the spacing (time interval) between the peaks can give the frequency of heart beat.
We recommend EasyEDA for circuit design and PCB prototype