ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

Model: MAX30100 Sensör Modülü (Breakout) Orta Seviye Üretici: Maxim Integrated

MAX30100 Entegre Nabız ve Kandaki Oksijen (SpO2) Biyometrik Sensörü

Kırmızı (660nm) ve Kızılötesi (880nm) LED ışığının parmak kılcal damarlarından emilimini ölçerek nabız ve SpO2 hesaplayan biyometrik sensördür.

Önemli Güvenlik ve Teknik Sınırlama Bilgisi

ÖNEMLİ TIBBİ UYARI: Bu sensör eğitim ve prototipleme amaçlıdır. Ölçülen nabız veya SpO2 verileri ASLA medikal tanı, hastalık teşhisi veya klinik tedavi amacıyla KULLANILAMAZ! Tıbbi durumlar için Sağlık Bakanlığı onaylı medikal pulse oksimetreler kullanılmalıdır.

Teknik Özellikler ve Elektriksel Parametreler

Çalışma Voltajı 1.80V - 3.30V Lojik Seviye Giriş/Çıkış
Akım Tüketimi 1.2 mA (ölçüm), 0.7 µA (kapanma) Tipik çalışma modu
Haberleşme Arayüzü I2C (0x57) Protokol türü
Ölçüm Aralığı Nabız: 30 - 250 BPM, Oksijen Doygunluğu: %70 - %100 SpO2 Etkili çalışma sınırı
Hassasiyet / Doğruluk16-Bit dahili ADCÖlçüm sapma payı
Tepki Süresi50 Hz - 1000 Hz örneklemeÖrnekleme hızı
Ölçüm TürüOptik Fotopletismografi (PPG) Nabız ve SpO2Fiziksel büyüklük
Pin Sayısı5 PinModül header pinleri

Pin Bağlantıları ve Görevleri (Pinout)

Pin #Pin AdıSinyal TürüGörev & Açıklama
1 VIN Güç +3.3V DC (5V VERMEYİN!)
2 SCL I2C Saat I2C Clock
3 SDA I2C Veri I2C Data
4 INT Kesme Kesme çıkışı
5 GND Toprak Toprak 0V

Geliştirme Kartı Uyumluluk Durumu

Arduino Uno / Nano ✓ Uyumlu
5V Lojik

Doğrudan bağlantı ve yerleşik 5V desteği.

ESP32 (NodeMCU) ✓ Uyumlu
3.3V Lojik

3.3V ile tam uyumlu çalışır.

Raspberry Pi Pico ✓ Uyumlu
3.3V Lojik

MicroPython veya C/C++ SDK ile desteklenir.

BBC Micro:bit ✓ Uyumlu
3.3V Lojik

MakeCode blokları veya MicroPython ile uyumlu.

STM32 (BluePill) ✓ Uyumlu
3.3V (5V Tolerant)

5V tolerant GPIO pinleri doğrudan bağlanabilir.

Örnek Kaynak Kod Kütüphanesi

Arduino Uno Arduino C++ ✓ Test Edildi

MAX30100 ile Nabız ve SpO2 Ölçümü

Gerekli Kütüphaneler: MAX30100lib by OXullo Interurban
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"

PulseOximeter pox;
uint32_t tsLastReport = 0;

void onBeatDetected() {
  Serial.println("Kalp Atışı Algılandı! (BAM)");
}

void setup() {
  Serial.begin(115200);
  if (!pox.begin()) {
    Serial.println("MAX30100 bulunamadı!");
    while(1);
  }
  pox.setOnBeatDetectedCallback(onBeatDetected);
}

void loop() {
  pox.update();
  if (millis() - tsLastReport > 1000) {
    Serial.print("Kalp Hızı: ");
    Serial.print(pox.getHeartRate());
    Serial.print(" BPM | SpO2: %");
    Serial.println(pox.getSpO2());
    tsLastReport = millis();
  }
}
Seri Monitör Çıktısı (Simülasyon):
Kalp Atışı: 72 BPM | SpO2: %98

Çalışma Mantığı ve Fiziksel İlkeler

MAX30100 ile Oksijen ve Nabız Nasıl Ölçülür?

Oksijen yüklü hemoglobin (HbO2) ile oksijeni tükenmiş hemoglobin (Hb) kırmızı ve kızılötesi ışığı farklı oranlarda emer:

  • Kırmızı LED (660 nm) ve Kızılötesi LED (880 nm) sırayla parmağa tutulur.
  • Kalp her attığında kılcal damarlara kan pompalanır ve ışık geçirgenliği dalgalanır (Fotopletismografi - PPG).
  • Dalga tepeleri arasındaki süre nabzı (BPM), iki dalga boyunun emilim oranı ise kandaki oksijen yüzdesini (% SpO2) verir.
  • Artıları ve Sınırlamaları

    Güçlü Yönleri (Avantajlar)
  • Çift LED ve fotodedektör tek minyatür pakette
  • Entegre ortam ışığı bastırma filtresi
  • Düşük güç tüketimi
  • Sınırlamaları (Dezavantajlar)
  • Parmak sensör üzerine çok sert bastırılırsa kılcal damarlar ezilir ve kan akışı kesilerek okuma durur
  • Sık Karşılaşılan Sorunlar ve Çözümleri

  • Piyasada satılan bazı RC-klon modüllerde I2C pull-up dirençleri yanlışlıkla 1.8V yerine 4.7k ile 5V'a bağlanmıştır; I2C kilitlenmesi yaşanırsa bu dirençler düzeltilmelidir.