Pulse Sensor With Arduino Tutorial





Introduction: 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

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.



    • Clocks Contest

      Clocks Contest
    • Creative Misuse Contest

      Creative Misuse Contest
    • Water Contest

      Water Contest

    18 Discussions

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

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



    Why does my LCD display show black background?

    1 reply

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

    What is the use of 'Potentiometer 10K'? can 10k resistor be used?

    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

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

    1 reply

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


    8 months ago

    جميل جدا

    Hello I have used an OLED instead of an LCD and i didn't include a potentiometer. Can the lack of it influence something in the recording? I keep getting too high or too low values when i change person using it how can i fix this?

    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 !

    1 reply

    9 months ago

    thanks for the tutorial but for some reason, the LCD is not glowing even though it works just fine on its own.Any idea why?

    What happens if potentiometer is not used

    hi my friend,rhe file which attache,doesnt download for me,could you help me to donload it

    Scientific and useful.