醫院常用的脈搏血氧飽和度偵測儀器的原理及介紹將在本文揭露。使用實驗模組MAX30100搭配arduino。
SpO2 & SaO2
所謂的SpO2及SaO2是什麼呢?
- SpO2:脈搏血氧飽和度,透過脈搏血氧儀測得。
- SaO2:動脈血氧飽和度,須透過抽血量測。
臨床上將SpO2及SaO2視為相同(SpO2數值通常略高),但當血紅素異常時,數值判讀就會存在誤差。
下圖為攜氧血球、缺氧血球、碳量高血球、含鐵量高血球等不同血球對不同光波長之光線之吸光係數曲線圖。
脈搏血氧儀
傳感器設備放置在使用者身體厚度較薄的位置,例如耳垂或指尖,將兩個波長的光穿透身體部位到達光電探測器,進而測量不同波長的吸光度,由吸光度變化計算血氧濃度。
血氧儀常見在消費性電子產品上像智慧手環、智慧手錶,這種電子產品使用的血氧儀是使用反射式模組,而醫院中夾著手指量測的血氧儀則為穿透式血氧儀。
穿透式脈搏血氧儀
Diode set
原理
介紹SpO2計算所運用之定理。
比爾-朗伯定理(Beer-Lambert’s Law)
Wiki:比爾朗伯定理維基百科
Beer’s Law
被穿透物濃度影響光吸收率
Lambert’s Law
光行進距離影響光吸收率
Hb, HbO2對光吸收率
通常使用600~700nm(紅光)作為light source 1;
900~1000nm(紅外光)作為light source 2。
<結論>
600~700nm:
光吸收率 Hb > HbO2
900~1000nm:
光吸收率 HbO2 > Hb
AC/DC Components
上圖可以看見,當無脈搏時,光線穿透後之強度為最強,因為光線經過的血液量最少,而當有脈搏時,光強度逐漸降至最小值,直到脈搏血液最多時光線穿透量最少。
而以上光線強度隨著脈搏起伏變動部分以AC稱之,而光線最大值(脈搏最小)則以DC稱之。
(之所以AC/DC稱之即表現像電流交流/直流電。)
SpO2簡易公式
光(紅光/紅外光)吸收率R=(AC紅光/DC紅光)/(AC紅外光/DC紅外光)。
業界常有簡易算法為上圖右方公式。
事實上根據不同傳感器或是不同LED光源,其導出公式均會有所差異,所以實作時必須依照實驗值校正出一張K表,如下圖:
根據實驗calibration得出的K表就是血氧儀顯示SpO2數值之依據。
MAX30100 Module with Arduino
下方簡單介紹使用MAX30100 R/IR LED and 光感器模組搭配arduino使用。MAX30100為光源及傳感器在同一側之模組設計,所以是一反射式脈搏血氧儀。
MAX30100 data sheet
接線
注意:我們需要在SCL/SDA兩PIN接上上拉電阻(PULL HIGH),如下三圖。
程式碼
其中計算SpO2、心跳等需使用到一些演算法,有機會再做介紹。
留言
Hi 你好 請問有接下來的文章嗎 想知道計算SpO2 = C + BR + AR^2的 A、B、C是如何求得的
係數關係到裝置使用的Light(Source)強度定義範圍,使用不同的光強度導出的係數就會不同。 這部分需要透過實驗,並規範Light(Source) 的intensity。
係數的實驗方式可以參考此篇文章: https://www.maximintegrated.com/en/design/technical-documents/app-notes/6/6845.html 中的”Why is Calibration Required?”小節。 裡面有提到calibration求值的方法。
請問血氧演算法為什麼需要扣除55或60?