Pulse Sensor With Arduino Tutorial





Pulse Sensor Amped is a plug-and-play heart-rate sensor for Arduino and Arduino compatibles. It can be used by students, artists, athletes, makers, and game & mobile developers who want to easily incorporate live heart-rate data into their projects. Pulse Sensor adds amplification and noise cancellation circuitry to the hardware. It's noticeably faster and easier to get reliable pulse readings. Pulse Sensor Amped works with either a 3V or 5V Arduino.


  • Diameter = 0.625" (~16mm)
  • Overall thickness = 0.125" (~3mm)
  • Working Voltage = 3V to 5V
  • Working Current = ~4mA at 5V

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material Preparation

In this tutorial , you will need :

1. Arduino Uno Board and USB Cable.
2. Pulse Sensor Arduino
3. Jumper Wires
4. LCD
5. Potentiometer 10K
6. 2 LEDs
7. Breadboard

Step 2: Pinout Details

you can see the s, + and - on pulse sensor's back view as shown in the picture above.

  • S : signal, connected to any of your microcontroller's digital pin.
  • + : supply, 3V up to 5V
  • - : ground

Step 3: Pin Connection

1. Connect Pulse Sensor to Arduino Uno Board as following :

  • + to +5V
  • - to GND
  • S tO A0

2. Connect LCD to Arduino Uno Board as following :

  • VSS to +5V
  • VDD to GND
  • RS to 12
  • RW to GND
  • E to D11
  • D4 to D5
  • D5 to D4
  • D6 to D3
  • D7 to D2
  • A/VSS to +5V
  • K/VDD to GND

3. Connect 10K Potentiometer to LCD as following (refer image for potentiometer pinout) :

  • GND to GND
  • Data to v0
  • VCC to +5V

4. Connect LED to Arduino as following :

  • LED1 (RED, blinkPin) to D13
  • LED2 (GREEN, fadeRate) to D8

Step 4: Connect to Your Computer

After u have completed your circuit, connect your Arduino Uno Board to your computer via USB Cable. You can see your LCD is on.

Step 5: Library

You have to download this library before uploading the sample source code into your Arduino IDE to allow Arduino to communicate with LCD. Download the ZIP file below > Open Zip File > Extract to your Arduino Uno Library folder.

Step 6: Sample Source Code

You may download this sample source code and open it on your Arduino IDE. Choose the correct board and port. Then, upload your Code into your Arduino Uno Board.

NOTE : DO NOT connect the Pulse Sensor to your body while your computer or arduino is being powered from the mains AC line. That goes for charging laptops and DC power supplies.

Step 7: Serial Monitor

when you open your serial monitor, make sure you change your baud rate to 115200, it has to match to the baud rate stated in the sample source code.

Step 8: Result

After it’s done uploading, you should see LED1 (red) blink in time with your heartbeat when you place your finger on the sensor. If you grip the sensor too hard, you will squeeze all the blood out of your fingertip and there will be no signal! If you hold it too lightly, you will invite noise from movement and ambient light. So, place your finger on the sensor lightly till you get a read on the LCD or serial monitor that shows signal is already transmitted. You will be able to get the reading on both serial monitor and LCD.

Step 9: Video

This video shows how pulse sensor work by displaying the BPM value on LCD.

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    26 Discussions


    2 years ago

    Hi ! The program seems complicated. Could you please explain the logic behind converting raw sensor data to BPM?

    I'm getting fluctuations in BPM (it varies from 40 to 250). Most of the times, its in the 200s. Sometimes, it comes down to 90 or 80.

    What could the problem be? Please help. Thank you !

    3 replies

    Reply 9 months ago

    Yeah, i have the same this problem. How to solve it? Thanks


    Reply 5 months ago

    Hi I have the same problem could you please tell me what's wrong if you have the solution now


    Answer 10 months ago

    It is for the brightness/contrast of lcd


    Reply 10 months ago

    The contrast is high for lcd.. you should lower it using potentiometer


    Reply 1 year ago

    The LCD is not start in the code you have to start the LCD


    11 months ago

    Please help me how can i get code?


    11 months ago on Step 9

    Please send me aurduino code of this project


    Question 1 year ago

    hi. what can i do to download the full code?


    1 year ago

    hi. can i get the code


    Question 1 year ago on Step 8

    I tried your code, but it give me 224 bpm and around that it's not reasonable value
    why that's happen?


    Question 1 year ago

    Sir, My pulse count is shown as 238 . I had tried with different people and locations. Please help me sir.




    Question 1 year ago

    I am having trouble with my LCD. I have it light up but I am not able to adjust it or get my BPM output but I do get it from the terminal on the computer. Do you know what we may have done wrong?


    my email is justin.carriere.07@gmail.com


    1 year ago

    Somebody explain to me that why i don't measure pulse but it still running pulse? Please

    1 reply

    Question 1 year ago on Step 9

    sir how to store the pulse rate to thinkspeakcloud.pls give me the code sir


    1 year ago

    جميل جدا