INFORMACIÓN
El MAX30100 es un sensor óptico integrado que permite medir el pulso cardíaco (frecuencia cardíaca) y los niveles de oxígeno en la sangre (SpO₂) de forma no invasiva. Este módulo combina dos LEDs (uno rojo y uno infrarrojo), un fotodiodo, óptica y circuitos de procesamiento en un solo chip. Funciona emitiendo luz a través del tejido (como el dedo) y midiendo la cantidad de luz absorbida por la sangre, que varía con cada latido. La luz infrarroja se utiliza para detectar el ritmo cardíaco, mientras que la luz roja permite calcular la saturación de oxígeno.
El sensor MAX30100 es ideal para proyectos relacionados con la monitorización de la salud, dispositivos de fitness, wearables, y aplicaciones médicas portátiles. Su diseño compacto y su bajo consumo de energía lo hacen adecuado para dispositivos que requieren mediciones continuas y no invasivas. El MAX30100 se comunica mediante I2C, lo que lo hace compatible con una amplia gama de tarjetas de desarrollo, como Arduino UNO, Nano, Mega, así como ESP8266, ESP32, STM32 y Raspberry Pi.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Voltaje de Operación (VIN): 5 VDC.
- Regulador de voltaje de 3.3 V y 1.8 V incorporados a la placa (Ideal para microcontroladores con niveles de 1.8V).
- Sensor óptico combinado con un fotodetector.
- Led rojo (E): 660 nm.
- Led infrarrojo(D): 920 nm.
- Protocolo de Comunicación: I2C.
- Conversor ADC: A 16 bit.
- Temperatura de trabajo: -40 °C a +85 °C.
- Dimensiones: 14 mm x 13 mm x 14 mm.
- Peso: 2 g.
Nota: Este dispositivo NO es un producto médico, debe ser utilizado en aplicaciones donde la salud de la persona NO esté comprometida.
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
¿Cómo se puede probar el MAX30100 Sensor de Pulso Cardiaco Heart Rate?
Materiales Necesarios:
- Sensor MAX30100 (módulo GY-MAX30100 u otro similar).
- Arduino UNO, Nano, Mega o similar.
- Cables Dupont (macho a hembra).
- Protoboard (opcional).
- Computadora con Arduino IDE instalado.
- (Opcional) Display OLED o LCD si quieres mostrar los resultados sin PC.
Conexión del Sensor MAX30100.
Este sensor se comunica por I2C, así que solo necesitas 4 conexiones:
| Sensor MAX30100 | Arduino UNO |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Instalar Librerías Necesarias.
- Abre el Arduino IDE.
- Ve a Sketch > Include Library > Manage Libraries…
- Busca e instala las siguientes librerías:
- MAX30100 by oxullo (busca “MAX30100” y selecciona la del autor oxullo o GitHub: oxullo/arduino-max30100).
- (Opcional) Instala Wire.h y Adafruit_GFX si usarás una pantalla.
Código de Prueba.
Aquí tienes un ejemplo funcional que muestra el ritmo cardíaco y la saturación de oxígeno en el monitor serial:
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t lastReport = 0;
void onBeatDetected() {
Serial.println("♥ Latido detectado");
}
void setup() {
Serial.begin(115200);
Wire.begin();
Serial.println("Inicializando MAX30100...");
if (!pox.begin()) {
Serial.println("ERROR: MAX30100 no encontrado");
while (1);
}
pox.setOnBeatDetectedCallback(onBeatDetected);
// Corriente de LEDs (importante para SpO2)
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
Serial.println("Coloca el dedo sobre el sensor");
}
void loop() {
pox.update();
if (millis() - lastReport > REPORTING_PERIOD_MS) {
Serial.print("Pulso: ");
Serial.print(pox.getHeartRate());
Serial.print(" bpm | SpO2: ");
Serial.print(pox.getSpO2());
Serial.println(" %");
lastReport = millis();
}
}
Probar el Sensor.
- Coloca suavemente tu dedo índice sobre el sensor (parte superior con los LEDs).
- Evita presionar demasiado fuerte, ya que puede afectar las mediciones.
- Abre el monitor serial a 9600 baudios.
- En unos segundos, comenzarás a ver valores como:
- BPM: Frecuencia cardíaca en latidos por minuto (normal: 60–100 en reposo).
- SpO₂: Saturación de oxígeno (normal: 95–100%).
¿Qué hacer si no se inicializa el MAX30100?
En algunas ocasiones por el voltaje lógico de algunos microcontroladores se tendrán problemas para los comandos de inicialización, esto debido a que gracias al diseño del MAX30100 proporciona niveles lógicos de 1.8V, siendo que las principales tarjetas de desarrollo como Arduino y ESP32 trabajan a 5V, 3.3V respectivamente. Para la solución de este problema solo se debe hacer una configuración muy sencilla, se conectarán las 3 resistencias pull up que se tienen a 3.3 V del segundo regulador, y abriremos esa pista, como se muestra a continuación:

La línea roja indica el puente de soldadura que se debe de realizar, mientras que la línea naranja indica la pista que se debe de abrir para que cambie el voltaje lógico de 1.8V que se tiene de forma predeterminada, de esta forma se podrá inicializar de forma correcta el sensor.
























Valoraciones
No hay valoraciones aún.