The MAX30102 is an integrated pulse oximetry and heart rate monitoring sensor, commonly used in wearable devices, fitness trackers, and health monitoring systems. It operates using photoplethysmography (PPG), which measures changes in blood volume using light absorption.
Key Features:
- Compact, low-power optical sensor
- Measures heart rate and SpO₂ (blood oxygen saturation)
- Uses Red and Infrared (IR) LEDs for detection
- Integrated photodetector and optical elements
- I2C communication for easy microcontroller integration
- Built-in ambient light cancellation
- Suitable for fingertip, earlobe, or wrist detection
- Operates from 1.8V to 3.3V logic, power supply can be 3.3V or 5V (depending on module version)
Working Principle:
The sensor emits light from Red (660 nm) and IR (880 nm) LEDs into human tissue (usually a finger).
Blood absorbs different amounts of light depending on oxygen saturation and pulse.
The photodetector measures the reflected light intensity.
Changes in light absorption correspond to heartbeat pulses and blood oxygen levels.
Typical Applications:
✔ Wearable fitness trackers
✔ Remote health monitoring systems
✔ Biomedical devices
✔ Finger-based heart rate detection
✔ Blood oxygen level monitoring (SpO₂)
Pin Connections
| MAX30102 Pin | Arduino Pin |
| VIN | 3.3V or 5V |
| GND | GND |
| SCL | A5 |
| SDA | A4 |
| INT (optional) | Not Connected |
Sample Codes
//AMOTECH ELECTRONICS_Initiate, Integrate, Innovate
#include <Wire.h>
#include "MAX30105.h"
MAX30105 particleSensor;
void setup() {
Serial.begin(9600);
Serial.println("Initializing MAX30102...");
if (!particleSensor.begin()) {
Serial.println("MAX30102 not detected. Check wiring.");
while (1);
}
particleSensor.setup(); // Use default configuration
}
void loop() {
long irValue = particleSensor.getIR();
if (irValue < 5000) {
Serial.println("No finger detected.");
} else {
Serial.print("IR Value Detected: ");
Serial.println(irValue);
}
delay(500);
}
Package includes:
1X Sensor





















