Project Hub

❤️
Heart Rate Monitor
Measure BPM with a pulse sensor on the OLED.
advanced60 min
Components Needed
Arduino UNO
Pulse sensor
0.96" I2C OLED
Circuit Diagram & Wiring
Add your circuit diagram image here.
- Pulse sensor signal → A0, VCC → 3.3V, GND → GND.
- OLED SDA → A4, SCL → A5.
Arduino Sketch (.ino)
heart-rate.ino
<span style="color:#f97583">#includespan> <Wire.h>
<span style="color:#f97583">#includespan> <Adafruit_SSD1306.h>
Adafruit_SSD1306 oled(<span style="color:#79b8ff">128span>, <span style="color:#79b8ff">64span>, &Wire, -<span style="color:#79b8ff">1span>);
int threshold = <span style="color:#79b8ff">550span>;
unsigned long lastBeat = <span style="color:#79b8ff">0span>;
int bpm = <span style="color:#79b8ff">0span>;
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Serial.begin(<span style="color:#79b8ff">9600span>);
}
void loop() {
int v = analogRead(A0);
unsigned long now = millis();
if (v > threshold && now - lastBeat > <span style="color:#79b8ff">300span>) {
bpm = <span style="color:#79b8ff">60000span> / (now - lastBeat);
lastBeat = now;
}
oled.clearDisplay();
oled.setTextSize(<span style="color:#79b8ff">2span>); oled.setTextColor(SSD1306_WHITE);
oled.setCursor(<span style="color:#79b8ff">0span>, <span style="color:#79b8ff">0span>); oled.println(<span style="color:<span style="color:#f97583">#9ecbffspan>">"BPM"span>);
oled.setTextSize(<span style="color:#79b8ff">3span>);
oled.setCursor(<span style="color:#79b8ff">0span>, <span style="color:#79b8ff">24span>); oled.println(bpm);
oled.display();
delay(<span style="color:#79b8ff">20span>);
}