MAX30100-P Modulo Sensor de Pulso de Ritmo Cardiaco Pulsioxímetro

[MAX30100-P] MAX30100-P Modulo Sensor de Pulso de Ritmo Cardiaco Pulsioxímetro

https://electrofranko.com/web/image/product.template/54887/image_1920?unique=99337f2

S/ 24.00 24.0 PEN S/ 24.00

S/ 24.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: MAX30100-P

Sensor Biométrico de Pulso y Oxigenación (MAX30100)

Módulo integrado de oximetría de pulso y monitor de frecuencia cardíaca mediante interfaz digital I2C.

El módulo MAX30100 es una solución integrada de sensor de oximetría de pulso y monitorización de frecuencia cardíaca de ultra bajo consumo. Combina dos fotodiodos (uno sensible a luz roja y otro a luz infrarroja), emisores LED optimizados y un procesador de señales analógicas de bajo ruido con filtrado de luz ambiental integrado. Su arquitectura digital procesa las fluctuaciones de absorción fotométrica en los vasos sanguíneos periféricos y entrega los datos crudos a través del bus serie I2C. Cuenta con un sistema interno de conversión ADC de alta resolución programable y modos de ahorro energético avanzados (Shutdown), lo que lo convierte en el transductor ideal para dispositivos médicos portátiles, relojes inteligentes y proyectos de monitorización biométrica en tiempo real.

Especificaciones Técnicas

Parámetro Detalle
Tensión de Alimentación (VCC)DC 1.8 V a 3.3 V (Módulo regula internamente)
Corriente de Operación1.5 mA (Pico máximo en muestreo continuo)
Consumo en Modo Reposo0.7 µA (Modo Shutdown programado)
Longitud de Onda LED Rojo660 nm (Medición de Hemoglobina desoxigenada)
Longitud de Onda LED IR880 nm (Medición de Hemoglobina oxigenada)
Interfaz de BusI2C / TWI Estándar Fast Mode
Parámetro Detalle
Dirección I2C Fija0x57 (Siete bits de direccionamiento de fábrica)
Resolución del ADC InternoConfigurable hasta 16 bits por registro
Frecuencia de MuestreoProgramable desde 50 Hz hasta 1000 Hz
Pin de Interrupción (INT)Salida digital de alerta activa en bajo
Dimensiones del PCB19 mm x 14 mm x 3 mm
Asignación de PinesVIN, GND, SCL, SDA, INT

Diagrama de Conexiones y Mapeo de Pines

Diagrama de Conexión MAX30100

Consideraciones Críticas de Hardware y Ventajas

Integración Monolítica Optimizada: Elimina la necesidad de acoplamientos analógicos externos complicados, amplificadores operacionales o filtros de paso de banda discretos, reduciendo drásticamente el espacio en el PCB.

Cancelación de Luz Ambiental Activa: El circuito interno cuenta con un sistema de rechazo automático para fuentes de luz externas fijas o fluctuantes (como lámparas fluorescentes o luz solar indirecta), asegurando mediciones estables.

Nota Técnica de Conectividad (Líneas Pull-up): Ciertos módulos comerciales de bajo costo requieren atención en sus resistencias pull-up integradas (líneas SDA/SCL), las cuales suelen venir conectadas de fábrica a la línea interna de 1.8V. Al usarse con microcontroladores de 5V o 3.3V, se recomienda verificar las líneas de bus o emplear un convertidor de niveles lógicos bidireccional si se presentan fallas de comunicación intermitentes.

Código Arduino Completo y Optimizado

// Código Completo para Monitoreo Biométrico con Sensor MAX30100 I2C // Utiliza la librería MAX30100_PulseOximeter para la detección analógica de pulso y cálculo de SpO2 #include <Wire.h> #include "MAX30100_PulseOximeter.h" // Intervalo de reporte serial en milisegundos para evitar saturar el buffer de salida #define PERIODO_REPORTE_MS 1000 // Creación de la instancia global para el objeto del oxímetro de pulso PulseOximeter oximetro; // Variables globales de control de tiempo y diagnóstico de lecturas uint32_t tiempoUltimoReporte = 0; unsigned long conteoLatidos = 0; unsigned long erroresInicializacion = 0; // Función Callback de interrupción por hardware simulada al detectar un latido real void alDetectarLatido() { conteoLatidos++; Serial.println(" [ BIO-ALERTA: Pulsación Cardíaca Detectada Síncronamente ]"); } void setup() { Serial.begin(115200); // Velocidad recomendada para el manejo rápido de flujos de tramas biométricas Serial.println("--- Inicializando Sistema de Monitoreo Fotoplestimográfico MAX30100 ---"); Serial.print("Estableciendo comunicación I2C en dirección fija 0x57... "); // Inicializa el sensor físico y verifica su ID de registro en el bus if (!oximetro.begin()) { erroresInicializacion++; Serial.println("FAILED"); Serial.println("Revise el cableado, las líneas de voltaje (VIN/GND) y el estado de los pull-ups."); while(1); // Bloqueo de seguridad si el hardware no responde en el bus } else { Serial.println("SUCCESS"); } // Configuración de la corriente por defecto de los LEDs infrarrojo y rojo (Optimización de muestreo) // Se establece un valor intermedio de 7.6mA para evitar saturación del fotodiodo por presión excesiva oximetro.setIRLedCurrent(MAX30100_LED_CURR_7_6MA); // Registro de la función Callback para capturar los flancos de subida del pulso cardíaco oximetro.setOnBeatDetectedCallback(alDetectarLatido); Serial.println("Coloque el dedo de forma firme pero suave sobre el sensor óptico."); Serial.println("-------------------------------------------------------------------------"); } void loop() { // Actualiza de manera continua los registros internos del sensor (Llamado crítico obligatorio) // Esta función lee la cola FIFO del MAX30100 y ejecuta los filtros de promedio móvil incorporados oximetro.update(); uint32_t tiempoActual = millis(); // Bloque de transmisión de datos temporizado (No bloqueante) if (tiempoActual - tiempoUltimoReporte >= PERIODO_REPORTE_MS) { tiempoUltimoReporte = tiempoActual; // Extracción de los parámetros biológicos calculados por el algoritmo de la librería float frecuenciaCardiaca = oximetro.getHeartRate(); uint8_t saturacionOxigeno = oximetro.getSpO2(); // Salida de datos formateada para telemetría y diagnóstico en laboratorio electrónico Serial.print("Muestra Secuencial. Latidos totales registrados: "); Serial.println(conteoLatidos); Serial.print(" Frecuencia Cardíaca: "); Serial.print(frecuenciaCardiaca, 1); Serial.print(" BPM (Pulso por Minuto)"); Serial.print(" | Saturación de Oxígeno (SpO2): "); Serial.print(saturacionOxigeno); Serial.println(" %"); // Validación de calidad de la lectura óptica if (saturacionOxigeno == 0 || frecuenciaCardiaca == 0.0) { Serial.println(" [!] Lectura inestable: Ajuste la posición del dedo o limpie la superficie del sensor."); } else { Serial.println(" [ OK ] Flujo periférico correcto. Datos consolidados."); } Serial.println("-------------------------------------------------------------------------"); } }