Pulse Sensor Amped Arduino Code
Latest commit 92d4d9e Jan 2, 2017 @joelSensor joelSensor committed on GitHub Update Timer_Interrupt_Notes.ino
Failed to load latest commit information.
PulseSensorAmped_Arduino_1dot4 Update Timer_Interrupt_Notes.ino Jan 2, 2017
pics images updated Apr 6, 2015
LICENSE Initial commit Feb 23, 2015
README.md Removed ambiguous download 'link' Dec 24, 2016



Pulse Sensor Arduino Code

  1. Blinks an LED to User's Live Heartbeat
  2. Fades an LED to User's Live HeartBeat
  3. Determines BPM
  4. Prints All of the Above to Serial

Screen Shot



  1. Download the ZIP or clone this repository using the link above.
  2. Take the PulseSensor_Amped_Arduino-master.zip file, and move it to your Documents/Arduino folder.
  3. Unzip PulseSensor_Amped_Arduino-master.zip in your Documents/Arduino folder.
    This properly installs your files

    • Double-click on PulseSensorAmped_Arduino_1dot2.ino filesys

    • Or, 0pen project in Arduino via *File > Sketchbook > PulseSensor_Arduino-Master > PulseSensorAmped_Arduino_1dot2.ino sketchbook

Pulse Sensor Hook-up

Arduino Pin Pulse Sensor Cable Color
RED 5V or 3V


Ear-Clip or Finger-Strap Config

Picture Picture

Variables to Note

Variable Name What it does
Signal Int that holds raw Analog Input data on **Pin 0, the Pulse Sensor's Purple Cable. It's updated every 2mS.
BPM Int that holds the heart-rate value, derived every beat, from averaging previous 10 IBI values.
IBI Int that holds the time interval between beats! Must be seeded!
Pulse Boolean that is true when a heartbeat is sensed. It's false other times. It controls LED Pin 13.
QS Boolean that is true whenever Pulse is found and BPM is updated. User must reset.

Works with Pulse Sensor Apps

This Arduion App works with:

ASCII Serial Monitor Visuals

See the User's Pulse & BPM without leaving Arduino. Open the serial monitor for this ASCII visualization.

  • To Open Serial Monitor: Arduino >> Tools >> Serial Monitor asciiviz

To Turn On ASCII Visualizer:

// Regards Serial OutPut  -- Set This Up to your needs
static boolean serialVisual = false;   // Set to 'false' by Default. 


// Regards Serial OutPut  -- Set This Up to your needs
static boolean serialVisual = true;   // Re-set to 'true' to do ASCII Visual Pulse  : ) 

That's it's! Upload and open your Arduino Serial Monitor.

(Advanced) Timer Interrupt Notes / PWM on Pin 3 & 11

There is a tab in the Arduino code called Timer_Interrupt_Notes. This page describes how to set up the Timer interrupt depending on which version of Arduino you are using, and what other things you may want to do with your sketch. Please read it carefully!

PWM on pins 3 and 11 will not work when using this code, because we are using Timer 2!

The Video

"The Pulse Sensor in 60 Seconds"