Pulse Checking Sensor Using Arduino Mega 2560

Introduction

 
In this article, I will explain how to correctly check the pulse in our body and sense the correct pulse signal in mobile or system. We will perform this using Arduino Mega 2560.
 
Parts
  • Arduino Mega 2560 
  • Pulse sensor 
  • Hookup Wires 
Pulse sensor
 
 
Figure 1: Pulse Sensor 
  • Pulse Sensor is a plug-and-play heart-rate sensor for Arduino Mega 2560 
  • It can be used to check the pulse in our bodies.
  • It can be used by students, artists, and developers.  
Connection
 
In the pulse sensor, they can have the 3 pins,
  • The first can be a negative pin connected to the Gnd of the Arduino Mega 2560.
  • The second can be a positive pin connected to the 5V of the Arduino Mega 2560. 
  • The third can be an input pin connected to the Analog pin A0 of the Arduino Mega 2560.  
Programming
  1. int pulsePin = 0; // Pulse Sensor purple wire connected to analog pin 0    
  2. int blinkPin = 13; // pin to blink led at each beat    
  3. int fadePin = 5; // pin to do fancy classy fading blink at each beat    
  4. int fadeRate = 0; // used to fade LED on with PWM on fadePin    
  5.   
  6. // these variables are volatile because they are used during the interrupt service routine!    
  7. volatile int BPM; // used to hold the pulse rate    
  8. volatile int Signal; // holds the incoming raw data    
  9. volatile int IBI = 600; // holds the time between beats, must be seeded!     
  10. volatile boolean Pulse = false// true when pulse wave is high, false when it's low    
  11. volatile boolean QS = false// becomes true when Arduino finds a beat.    
  12.   
  13. void setup()   
  14. {  
  15.   pinMode(blinkPin, OUTPUT); // pin that will blink to your heartbeat!    
  16.   pinMode(fadePin, OUTPUT); // pin that will fade to your heartbeat!    
  17.   Serial.begin(115200); // we agree to talk fast!    
  18.   interruptSetup(); // sets up to read Pulse Sensor signal every 2mS     
  19. }  
  20.   
  21. void loop()   
  22. {  
  23.   sendDataToProcessing('S', Signal); // send Processing the raw Pulse Sensor data    
  24.   if (QS == true)  
  25.   { // Quantified Self flag is true when arduino finds a heartbeat    
  26.     fadeRate = 255; // Set 'fadeRate' Variable to 255 to fade LED with pulse    
  27.     sendDataToProcessing('B', BPM); // send heart rate with a 'B' prefix    
  28.     sendDataToProcessing('Q', IBI); // send time between beats with a 'Q' prefix    
  29.     QS = false// reset the Quantified Self flag for next time        
  30.   }  
  31.   ledFadeToBeat();  
  32.   delay(20); //  take a break    
  33. }  
  34.   
  35. void ledFadeToBeat()   
  36. {  
  37.   fadeRate -= 15; //  set LED fade value    
  38.   fadeRate = constrain(fadeRate, 0, 255); //  keep LED fade value from going into negative numbers!    
  39.   analogWrite(fadePin, fadeRate); //  fade LED    
  40. }  
  41.   
  42. void sendDataToProcessing(char symbol, int data)   
  43. {  
  44.   Serial.print(symbol); // symbol prefix tells Processing what type of data is coming    
  45.   Serial.println(data); // the data to send culminating in a carriage return    

    Explanation
    • Check the pulse in the monitor / smart mobile.
    • When the pulse is normal the LED blinks.
    • We can monitor the pulse with the correct data and symbols. 
    Output
     
     
    Figure 2: Output
     
    Read more articles on Arduino: