Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
/* PulseSensor Starter Project and Signal Tester
The Best Way to Get Started With, or See the Raw Signal of, your™ & Arduino.
Here is a link to the tutorial
WATCH ME (Tutorial Video):
1) This shows a live human Heartbeat Pulse.
2) Live visualization in Arduino's Cool "Serial Plotter".
3) Blink an LED on each Heartbeat.
4) This is the direct Pulse Sensor's Signal.
5) A great first-step in troubleshooting your circuit and connections.
6) "Human-readable" code that is newbie friendly."
// Variables
int PulseSensorPurplePin = 0; // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0
int LED13 = 13; // The on-board Arduion LED
int Signal; // holds the incoming raw data. Signal value can range from 0-1024
int Threshold = 550; // Determine which Signal to "count as a beat", and which to ingore.
// The SetUp Function:
void setup() {
pinMode(LED13, OUTPUT); // pin that will blink to your heartbeat!
Serial.begin(9600); // Set's up Serial Communication at certain speed.
// The Main Loop Function
void loop() {
Signal = analogRead(PulseSensorPurplePin); // Read the PulseSensor's value.
// Assign this value to the "Signal" variable.
unsigned long time = millis(); // Current run time in milliseconds.
Serial.print(time); // Print the time in ms to serial output
Serial.print("\t"); // Print a tab to separate the time from the signal
Serial.println(Signal); // Send the Signal value to Serial Plotter.
if (Signal > Threshold) { // If the signal is above "550",
digitalWrite(LED13, HIGH); // then "turn-on" Arduino's on-Board LED.
} else {
digitalWrite(LED13, LOW); // Else, the sigal must be below "550",
// so "turn-off" this LED.