|
|
Arduino Uno (Rev3) |
x 1 |
|
Soldering iron (generic) |
|
|
Soldering Iron Wire |
Arduino Heartbeat Monitor with HW-487 Pulse Sensor and 16×2 I²C LCD
This project is an Arduino Uno–based heartbeat monitor that uses the HW-487 pulse sensor to measure and display heartbeats in real time. The sensor detects the pulse through its digital output, and the Arduino calculates and displays the beats per minute (BPM) on a 16×2 I²C LCD screen.
Features:
- HW-487 pulse sensor for heartbeat detection.
- Real-time BPM display on a 16×2 I²C LCD.
- Built with Arduino Uno R3 for simplicity and reliability.
Compact design, easy to replicate and modify.
Great for educational, hobby, and health-related projects.
How it works:
The HW-487 pulse sensor detects small changes in blood flow. Each heartbeat is sent as a digital signal to the Arduino, which processes the data and calculates the BPM. The result is updated in real time on the LCD display, refreshing every few hundred milliseconds.
Applications:
- Learning Arduino
- Demonstrating pulse monitoring concepts.
- DIY health projects.
- Hobbyist experiments
This project is simple, useful, and beginner-friendly, providing hands-on experience with sensors, Arduino coding, and real-time data display.
Warning & Disclaimer:
- This project is intended for educational and hobby purposes only.
- It is not a medical device and must not be used for diagnosis or health monitoring in critical applications.
- Always use certified medical equipment for professional health measurements.
- The creator is not responsible for misuse or incorrect interpretation of results.
- Use at your risk and responsibility.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int pulsePin = 2;
volatile unsigned long lastBeatTime = 0;
volatile unsigned long beatInterval = 0;
volatile int lastBPM = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Heartbeat Sensor");
delay(2000);
lcd.clear();
pinMode(pulsePin, INPUT);
attachInterrupt(digitalPinToInterrupt(pulsePin), onBeat, RISING);
}
void loop() {
unsigned long now = millis();
int bpmToShow = lastBPM;
// Estimate BPM between beats if interval is valid
if (beatInterval > 0) {
unsigned long elapsed = now - lastBeatTime;
unsigned long estInterval = beatInterval + elapsed;
int estBPM = 60000 / estInterval;
if (estBPM > 30 && estBPM < 200) {
bpmToShow = estBPM;
}
}
// Display
lcd.setCursor(0, 0);
lcd.print("BPM: ");
if (bpmToShow > 30 && bpmToShow < 200) {
lcd.print(bpmToShow);
lcd.print(" ");
} else {
lcd.print("-- ");
}
delay(200); // refresh every 200 ms
}
// ISR runs on each detected beat
void onBeat() {
unsigned long currentTime = millis();
unsigned long interval = currentTime - lastBeatTime;
if (lastBeatTime > 0 && interval > 250) { // filter out noise
beatInterval = interval;
lastBPM = 60000 / interval;
}
lastBeatTime = currentTime;
}
Arduino Heartbeat Monitor with HW-487 Pulse Sensor and 16×2 I²C LCD
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(0)
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Ondřej Kuběna
-
Choose the right brightness for your LEDs. LED RESISTANCE HELPER Tool
This board features 6 different resistance values so you can find the right brightness for your proj...
-
EON Keychain
EON Keychain, can be multicolor.No special settings or supports needed.Filament: PLANo rafts and no ...
-
EON - Figure
EON - Figure, can be multicolor.Supports needed, organic support setting is best, you can use the au...
-
EON - Articulated fidget toy
EON-Articulated Fidget Toy, can be multicolor.No special setting or supports needed.Filament: PLANo ...
-
Led Chaser, Mostly SMD, using NE555 & CD4017
NE555 & CD4017 LED CHASER-The LEDS, RESISTORS AND INTEGRATED CIRCUITS are all SMD, therefore the...
-
Arduino Heartbeat Monitor with HW-487 Pulse Sensor and 16×2 I²C LCD
This project is an Arduino Uno–based heartbeat monitor that uses the HW-487 pulse sensor to measure ...
-
Astable Multivibrator Using Transistors
This project is an Astable Multivibrator built with two BC546 NPN transistors, along with resistors ...
-
ZERO PCB 6*7cm - Perfboard
Please do not use BOM and the centroid file because they are irrevelant and not needed. (In the BOM ...
-
NCV Tester, Detect LIVE electronics
Warning / Safety Notice:This tester is for basic DIY and educational use only.It is not a profession...
-
ON/OFF Flip Flop Switch Using NE555
This project is an ON/OFF flip flop switch circuit built around the popular NE555 timer IC. It acts ...
-
Solder Paste/Flux Syringe Cap
When solder paste or flux is left uncovered, it can dry out, harden, or become less effective. With ...
-
LED Tester
This project is a simple LED tester, designed to quickly check LEDs of different colors, sizes, and ...
-
M3-M10 WASHERS
Overview:M3-M10 3D printed washers fit bolts or screws sized M3 to M10. They can be printed in a var...
-
M3-M10 NUTS
Overview: M3-M10 3D printed nuts are customizable fasteners that fit bolts or screws sized M3 to M10...
-
WICK, Solder Wire, Tin spool holder
This project is a 3D printed coil holder designed for organizing wires, soldering tin, and other spo...
-
Power Supply for Audio Amplifier
INPUT 16-18VACOUTPUT1 12VDCOUTPUT2 24VDCThis project is a dedicated power supply unit designed for ...
-
Fume Extractor with 3D Printed Case, Carbon Filter and 70mm (or any) Fan
This project is a DIY fume extractor designed to keep your soldering area safe and clean.Features:3D...
-
Arduino UNO R3 Back Cover
Protect and organize your Arduino Uno R3 with this precision-designed back cover. It shields the boa...
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
397 3 4 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
412 2 0 -
-
-
-
ESP32-C3 BLE Keyboard - Battery Powered with USB-C Charging
619 0 1 -
-
mammoth-3D SLM Voron Toolhead – Manual Drill & Tap Edition
633 0 1 -
-
AEL-2011 Power Supply Module
1277 0 2 -
AEL-2011 50W Power Amplifier
1145 0 2







