步驟1:材料和組件
需要的東西:
1)Arduino Uno x1
2)MAX30100接線板x1
3)適當長度的魔術貼
5)跳線
6)焊接線
7)焊接工具
我們從ProtoCentral獲得了MAX30100分支板,該分支板已準備就緒,可插入插槽以插入維可牢尼龍搭扣,以便將器件纏繞在手指上。為了將其連接到Arduino,我們還必須將跳線焊接到分支板的引腳上。
步驟2:要求和規格
-建立一個可以調節來自兩個不同LED的光并在光電二極管上拾取透射光的手指套
-使用與Arduino和顯示器集成在一起的MAX30100芯片。
-提供一個用于在顯示心率和血氧飽和度之間進行選擇的用戶界面。
步驟3:操作摘要
脈搏血氧飽和度測定法根據氧化血紅蛋白和脫氧血紅蛋白的紅色和紅外光吸收特性進行操作。血氧濃度可以由血紅蛋白從吸收紅光和紅外光之間的比率算出。心率通過整個手指的血量變化來檢測,然后通過穿過手指的光量來量化。
MAX30100芯片集成了兩個LED:紅色和紅外(IR),光電探測器和低噪聲信號處理以檢測脈搏血氧飽和度和心率信號。紅外和紅光的吸收數據存儲在FIFO緩沖區中,最多64個字節。它提供兩種操作模式;心率模式以及心率和氧飽和度模式。在心率模式下,僅IR LED點亮,而在雙模式下,IR和紅色LED均點亮。它還具有一個集成的60 Hz低通濾波器。雖然可以濾除電源線噪聲,但仍不能解決環境噪聲和波動問題。
紅色和紅外光通過LED傳輸通過手指,并且集成在芯片中的光電檢測器可以感應到兩個不同波長的光吸收。在本項目中,我們將血氧飽和度和心率檢測操作與MAX30100一起使用,因此我們可以同時檢測心率和氧飽和度。
步驟4:框圖
步驟5:將MAX30100集成到Arduino
MAX30100是I2C器件,因此,通過代碼,需要Wire庫與Arduino接口。物理上,MAX30100(在本例中為分線板)通過特殊引腳連接到Arduino,這些引腳能夠從SCL和SDA線(A4和A5)讀取數據。 SCL和SDL線提供數據信號和時鐘信號。地線和Vin線分別連接到GND和5V線。
LCD鍵盤屏蔽通過4-8針連接到Arduino,以便我們提供用戶友好的顯示。我們還使用了LCD鍵盤防護板上的兩個按鈕,用于在兩種模式之間進行選擇:心率監視器和氧氣濃度監視器。
步驟6:源代碼
#include
#include
#include
#include “MAX30100.h”
MAX30100*pulseOxymeter;
LiquidCrystal lcd(8,9,4,5,6,7)
int mode = 0;
void setup() {
Wire.begin();
lcd.begin(16,2);
lcd.print(“Up for SaO2”)
lcd.setCurson(0,2);
lcd.println(“Pulse oxymeter test!”)
pulseOxymeter = new MAX30100( DEFAULT_OPERATING_MODE, DEFAULT_SAMPLING_RATE, DEFAULT_LED_PULSE_WIDTH, DEFAULT_IR_LED_CURRENT, true, false);
pinMode(2, OUTPUT);
}
void loop() {
pulseoxymeter_t result = pulseOxymeter-》update();
if ((analogRead(0)》130) && (analogRead(0)《160)) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print( “SaO2: ” );
mode = 1;
} else if ((analogRead(0)》130) && (analogRead(0)《160)) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print( “BPM: ” );
mode = 2;
if (result.pulseDetected == true)
{
if (mode == 1) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print( “SaO2: ”);
lcd.print( result.SaO2 );
lcd.print( “%” );
} else if (mode == 2) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print( “BPM: ”);
lcd.print(result.heartBPM);
}
}
delay(10);
digitalWrite( 2, !digitalRead(2) );
}
步驟7:有關代碼實現的更多信息
我們在此項目中提供的代碼基于由Raivinis Strogonovs使用開放源代碼庫編寫,該庫已使用MAX30100實現了自己的脈搏血氧儀版本。
這是他的庫的鏈接:https://github.com/xcoder123/MAX30100
步驟8:挑戰
在實施MAX30100時,我們注意到手指的位置和移動會顯著影響所記錄的讀數。這可能是由于心率的測量很大程度上取決于流經手指的血液量而引起的,皮膚的厚度也在這里發揮了作用。如果手指四處移動,則在獲取讀數時可能會導致光線不均勻。
測試我們項目的人們不應四處移動手指/手以獲取穩定的讀數。可以通過將傳感器放置在實際的手指套中來改進此項目,該方法可以進一步減少環境光的影響,并且可以使手指保持在適當的位置,而不僅僅是使用簡單的魔術貼條即可。
責任編輯:wv
-
脈搏血氧儀
+關注
關注
1文章
29瀏覽量
11073 -
MAX30100
+關注
關注
1文章
6瀏覽量
2991
發布評論請先 登錄
相關推薦
評論