

The MAX30100 is an integrated pulse oximetry and heart-rate monitor sensor solution. It combines two LEDs, a photodetector, optimized optics, and low-noise analog signal processing to detect pulse rate and blood oxygen saturation levels (SpO2). This sensor is widely used in wearable health devices, fitness assistants, and medical monitoring devices.








| Pin Number | Name | Description |
|---|---|---|
| 1 | VIN | Supply voltage (1.8V to 3.3V) |
| 2 | SCL | I2C clock line |
| 3 | SDA | I2C data line |
| 4 | INT | Interrupt pin (active low) |
| 5 | RD | Red LED cathode |
| 6 | IRD | IR LED cathode |
| 7 | GND | Ground |
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
PulseOximeter pox;
uint32_t tsLastReport = 0;
void setup() {
Serial.begin(115200);
// Initialize the PulseOximeter instance
if (!pox.begin()) {
Serial.println("Failed to initialize the pulse oximeter!");
for(;;);
} else {
Serial.println("Pulse oximeter initialized.");
}
}
void loop() {
// Make sure to call update as fast as possible
pox.update();
if (millis() - tsLastReport > 1000) { // Report every 1 second
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
tsLastReport = millis();
}
}
Note: This example assumes the use of a MAX30100 library, such as the one provided by SparkFun or similar. Make sure to install the library through the Arduino IDE before uploading the code.
FAQs:
Q: Can the MAX30100 be used on any part of the body?
Q: What is the I2C address of the MAX30100?
Q: How can I calibrate the MAX30100?
This documentation provides an overview of the MAX30100 sensor module, its usage, and troubleshooting tips. For more detailed information, refer to the datasheet provided by the manufacturer.