Bu, raporun Tablo 10'unun adım adım uygulamasıdır. Aşamaları sırayla yapın; biri başarısız olursa devam etmeden düzeltin (09. bölüm). Her kablo değişikliğinde USB'yi çekin.
Uno ve raylarTablo 10 · 1
USB kablosunu takın. Uno'nun yeşil ON LED'i yanar. Multimetre V⎓ konumunda, siyah prob bir GND rayında:
BeklenenÜst + ray yaklaşık 5,0 V (4,7–5,2), alt + ray yaklaşık 3,3 V (3,2–3,4). Dönüştürücünün HV şeridi 5 V, LV şeridi 3,3 V. Şerit 20 alt (VIN girişi) 3,3 V.
Sensör beslemede, sinyaller bağlı değilTablo 10 · 2
USB'yi çekin. Yalnızca modülün VIN ve GND kablolarını takın (17–18). USB'yi takın. Modülün kendi SDA ve SCL pinlerinde ölçün (kırmızı probu pine ya da boştaki kablonun soketine değdirin).
BeklenenSDA ve SCL'de yaklaşık 3,3 V: pull-up pedi 3,3 V'ta. 1,8 V ped 1,8 V tarafında demektir (okulda düzeltin ya da devam edin; genellikle yine çalışır). 0 V modülde pull-up olmadığını gösterir: R1 ve R2 gerekir.
I²C tarayıcıTablo 10 · 3
USB'yi çekin. Modülün SDA, SCL ve INT kablolarını bağlayın (19–21). USB'yi takın. step1_i2c_scanner'ı açın, yükleyin, Serial Monitor'ü açın (sağ üstteki büyüteç), hızı 115200 baud yapın.
I2C scanner - looking for the MAX30102 at 0x57
device at 0x57 <- MAX30102
Done, 1 device(s) found.
Beklenen0x57'de tek cihaz, her 3 s'de tekrar. Çalışırken sensör kablolarını hafifçe oynatın: sonuç değişmemeli.
Sensör kontrolüTablo 10 · 4
step2_sensor_check'i yükleyin. Serial Monitor 115200'de.
Part ID: 0x15 OK (MAX30102)
Revision ID: 0x03
Die temperature: 27.31 C
INT on D2: idle HIGH, data waiting LOW -> INT wire OK
BeklenenPart ID 0x15, oda sıcaklığına yakın bir sıcaklık (çip birkaç derece sıcak çalışır; üstüne parmak koymak yükseltir) ve "INT wire OK". Revizyon numarası farklı olabilir.
Parmakla ham sinyalTablo 10 · 5
oximeter_main'i yükleyin. Sensörün kırmızı LED'i artık hafifçe yanmalı (IR LED görünmez; telefonun ön kamerası bazen mor gösterir). Serial Monitor'ü kapatın, Tools → Serial Plotter'ı açın, 115200 seçin, mesaj kutusuna w yazıp Enter'a basın. Parmağı sensöre koyun, bandı sarın, kıpırdamayın.
BeklenenParmak yokken iki çizgi de düşük. Parmakla ikisi de yükselir ve oturur, sonra küçük düzenli bir dalgalanma görünür: nabzınız. Yalnızca dalgalanmayı (AC) görmek için p yazın; okumak çok daha kolay. Hiçbir çizgi 262143'te düz kalmamalı (doyum).
LED akımı ve ADC aralığını ayarlamaTablo 10 · 6
Serial Monitor'de (ya da Plotter'ın mesaj kutusunda) ayarları ve DC seviyelerini görmek için s yazın. Sonra ayarlayın:
- I / i: IR LED akımını 1 mA artır / azalt. R / r: kırmızı için aynısı. Her değişiklik filtreleri yeniden başlatır.
- a: sonraki ADC aralığı (2048 → 4096 → 8192 → 16384 nA). Büyük aralık, doyuma ulaşmadan daha fazla ışık kaldırır.
Beklenenİki DC değerini de yaklaşık 50.000 ile 200.000 arasına (0–262.143'ün ortası civarı), kırmızı ve IR'yi birbirine yakın ve plot modunda belirgin bir dalgalanmayla hedefleyin. Son akımları not edin; kalıcı olması için sketch'in başındaki redCurrent, irCurrent ve adcRange değerlerine yazıp yeniden yükleyin. Uno'nun reset düğmesi koddaki değerlere geri döndürür.
Kırmızı/IR kontrolü (bir kez): kırmızı akım 0.0 mA olana kadar r yazın. red sütunu neredeyse sıfıra düşmeli. Onun yerine ir düşerse sketch'te SWAP_RED_IR = true yapın.
Parmak eşiği (bir kez): parmak yokken ve parmakla IR DC değerini (s) not edin. FINGER_DC_MIN'i ikisinin yaklaşık ortasına ayarlayın (koddaki 30.000 yalnızca başlangıç tahmini).
60 s dinlenme kaydı, sonra 5 VTablo 10 · 7
CSV'ye dönmek için c yazın. Arduino Serial Monitor ve Plotter'ı kapatın. MATLAB'da durationS = 60 ile record_session.m'yi, sonra dosya üzerinde analyze_recording.m'yi çalıştırın (08. bölüm).
Ardından USB'yi çekin, 13. kablonun ray ucunu 3V3 rayından 5V rayına taşıyın (VIN = 5 V), takın, VIN şeridinin 5 V gösterdiğini kontrol edin, yeniden ayarlayın, tekrar kayıt alın ve SNR'yi karşılaştırın.
BeklenenAnalizde nabız frekansınızda net bir tepe, her besleme için bir SNR değeri ve spektrumdan bulunan nabzın yazılımınkine birkaç bpm yakın olması.