Pin 0 Pulse Sensor purple wire connected to analog pin 0int blink
Pin 13 pin to blink led at each beatint fade
Pin 5 pin to do fancy classy fading blink at each beatint fade
Rate 0 used to fade LED on with PWM on fade
Pin these variables are volatile because they are used during the interrupt service routinevolatile int BPM used to hold the pulse ratevolatile int Signal holds the incoming raw datavolatile int IBI 600 holds the time between beats, the Inter-Beat Intervalvolatile boolean Pulse false true when pulse wave is high, false when its lowvolatile boolean QS false becomes true when Arduoino finds a beat.void setup() pin
Mode(blink
Pin,
OUTPUT) pin that will blink to your heartbeat pin
Mode(fade
Pin,
OUTPUT) pin that will fade to your heartbeat Serial.begin(115200) we agree to talk fast interrupt
Setup() sets up to read Pulse Sensor signal every 2mS UN-COMMENT THE NEXT LINE IF YOU ARE POWERING The Pulse Sensor AT LOW VOLTAGE, AND APPLY THAT VOLTAGE TO THE A-REF PIN analog
Reference(EXTERNAL) void loop() send
Data
ToProcessing(S, Signal) send Processing the raw Pulse Sensor data if (QS true) Quantified Self flag is true when arduino finds a heartbeat fade
Rate 255 Set fade
Rate Variable to 255 to fade LED with pulse send
Data
ToProcessing(B,
BPM) send heart rate with a B prefix send
Data
ToProcessing(Q,
IBI) send time between beats with a Q prefix QS false reset the Quantified Self flag for next time led
Fade
ToBeat() delay(20) take a breakvoid led
Fade
ToBeat() fade
Rate - 15 set LED fade value fade
Rate constrain(fade
Rate,0,255) keep LED fade value from going into negative numbers analog
Write(fade
Pin,fade
Rate) fade LED void send
Data
ToProcessing(char symbol, int data ) Serial.print(symbol) symbol prefix tells Processing what type of data is coming Serial.println(data) the data to send culminating in a carriage return