ROBOTKODLA
ROBOTKODLA Genç Mucit

Eğlen, Kodla, Geleceği Tasarla

Model: MAX30102 Sensör Modülü (Breakout) İleri Seviye Üretici: Maxim Integrated (Analog Devices)

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

Kırmızı ve kızılötesi LED ışığının parmaktaki kılcal damarlardan emilimini ölçerek nabız ve SpO2 hesaplayan optik biyometrik sensör.

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

MAX30102 hobi ve eğitim amaçlı bir fotopletismografi sensörüdür. Elde edilen nabız ve oksijen verileri teşhis, tıbbi tanı veya tedavi amacıyla ASLA KULLANILAMAZ! Tıbbi durumlar için onaylı medikal ekipmanlar kullanılmalıdır.

Teknik Özellikler ve Elektriksel Parametreler

Çalışma Voltajı 3.30V - 5.00V Lojik Seviye Giriş/Çıkış
Akım Tüketimi 600 µA (çalışma), 0.7 µA (bekleme) Tipik çalışma modu
Haberleşme Arayüzü I2C (0x57) Protokol türü
Ölçüm Aralığı Nabız: 30 - 250 BPM | SpO2: %70 - %100 Etkili çalışma sınırı
Hassasiyet / DoğrulukHobi ve prototipleme sınıfı optik biyometrik veriÖlçüm sapma payı
Tepki Süresi50 Hz - 400 Hz örneklemeÖrnekleme hızı
Ölçüm TürüFotopletismografi (PPG) - Kalp Atış Hı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 veya +5V DC
2 GND Toprak Toprak 0V
3 SCL I2C Saat I2C Clock
4 SDA I2C Veri I2C Data
5 INT Kesme Veri hazır kesme çıkışı

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

SparkFun MAX3010x Kütüphanesi ile Nabız Algılama

Gerekli Kütüphaneler: SparkFun MAX3010x Pulse and Proximity Sensor Library
#include <Wire.h>
#include "MAX30105.h"
#include "heartRate.h"

MAX30105 particleSensor;

long lastBeat = 0;
float beatsPerMinute;
int beatAvg;

void setup() {
  Serial.begin(115200);
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30102 bulunamadı!");
    while (1);
  }
  particleSensor.setup();
  particleSensor.setPulseAmplitudeRed(0x0A);
  particleSensor.setPulseAmplitudeGreen(0);
}

void loop() {
  long irValue = particleSensor.getIR();
  if (checkForBeat(irValue) == true) {
    long delta = millis() - lastBeat;
    lastBeat = millis();
    beatsPerMinute = 60 / (delta / 1000.0);
    if (beatsPerMinute < 255 && beatsPerMinute > 20) {
      Serial.print("Kalp Atışı: ");
      Serial.print(beatsPerMinute);
      Serial.println(" BPM");
    }
  }
  if (irValue < 50000) {
    Serial.println("Parmağınızı sensöre koyun...");
    delay(500);
  }
}
Seri Monitör Çıktısı (Simülasyon):
Kalp Atışı: 74.2 BPM
Kalp Atışı: 73.8 BPM

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

MAX30102, giyilebilir cihazlar için entegre bir nabız oksimetresi ve kalp atış hızı izleme modülüdür. Çift LED (Kırmızı 660 nm ve Kızılötesi 880 nm), fotodedektör ve düşük gürültülü analog sinyal işleme devresini tek bir 14-pinli optik pakette barındırır.

Artıları ve Sınırlamaları

Güçlü Yönleri (Avantajlar)
  • Çok küçük boyut ve düşük güç tüketimi.
  • Entegre optik LED ve fotodedektör mimarisi.
  • Gelişmiş FIFO bellek desteği.
  • Sınırlamaları (Dezavantajlar)
  • Parmak aşırı bastırıldığında kan dolaşımı kesilerek hatalı okuma yapılır.
  • Ortam ışığı ve hareket parazitlerine (motion artifact) karşı hassastır.
  • Sık Karşılaşılan Sorunlar ve Çözümleri

  • Parmak sensör üzerine çok hafif dokundurulmalı, kan akışını engelleyecek şekilde bastırılmamalıdır.