Skip to content

Working source code for Pulse Sensor and Teensy 3.2 (probably works with 3.1 as well)

License

Notifications You must be signed in to change notification settings

stevenvo/PulseSensor_Teensy3.2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Important Note

The original code is from WorldFamousElectronics. I've just modified it to work with Teensy v3.2, mainly adding "Timer" to control the interrupts. In theory, this code should work fine with Teensy v3.1/3.0 however I've not tried yet.

Demo video: https://www.youtube.com/watch?v=_h_uFRIzZH4

I'm using this PulseSensor app for reading and calculating the BPM from the USB serial port from teensy board.

This is what the board layout looks like:

screenshot

Original README Content

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

ScreenShot

Installing

  1. Download ZIP on this page: Download

  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
BLACK GND (GROUND)
PURPLE ANALOG 0 (Zero)

cablehookup

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. 

too:

// 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"

About

Working source code for Pulse Sensor and Teensy 3.2 (probably works with 3.1 as well)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Other 100.0%