Tham khảo
- https://lastminuteengineers.com/max30102-pulse-oximeter-heart-rate-sensor-arduino-tutorial/
- https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library/tree/master/src
Mở đầu
Kiến trúc thư viện
Trước hết ta cần xem hình ảnh sau đây để có thể hiểu hơn về thư viện giao tiếp với MAX30102
Ví dụ
#include <Wire.h>
#include "MAX30105.h" MAX30105 particleSensor; void setup() { Serial.begin(9600); // Initialize sensor if (particleSensor.begin() == false) { Serial.println("MAX30102 was not found. Please check wiring/power."); while (1) ; } particleSensor.setup(); //Configure sensor. Use 6.4mA for LED drive
} void loop() { Serial.print(" R["); Serial.print(particleSensor.getRed()); Serial.print("] IR["); Serial.print(particleSensor.getIR()); Serial.println("]");
}
Datasheet
Applications Information
- Thời gian led sáng trong 1 xung gọi là độ rộng xung (Pulse Width).
- Tốc độ lấy mẫu của ADC phụ thuộc vào thời gian led sáng. Mỗi lần led được bật thì ADC sẽ đo được ánh sáng phản xạ về gọi là 1 mẫu (sample).
Nếu độ rộng xung càng lớn -> thời gian led sáng càng lâu -> Nhiều ánh sánh sẽ được phản xạ về ADC -> Đo chính xác hơn. Nhưng đổi lại thì sẽ mất khoảng thời gian lớn hơn để lấy mẫu.
SpO2 Temperature Compensation
- MAX30102 có cảm biến nhiệt độ tích hợp bên trong.
- Nhiệt độ ảnh hưởng đến bước sóng của led đỏ và led IR.
- Tín hiệu đầu ra không ảnh hưởng bởi bước sóng của IR, bởi vì IR thường dùng để đo nhịp tim, và máu (Hb và HbO2) hấp thụ IR khá giống nhau.
- Tuy nhiên đối với led đỏ thì khác, bước sóng rất quan trọng để dữ liệu có thể diễn giải 1 cách chỉnh xác. Bởi vì Led đỏ thường dùng để đo SpO2 trong máu và có sự khác biệt hấp thụ ánh sáng của máu có Oxy (HbO2) và không có Oxy (Hb).
Bước sóng của led sẽ không cố định mà sẽ tăng dần khi nhiệt độ tăng. Led đỏ nóng lên rất nhanh khi ta vừa khởi động cảm biến điều này sẽ khiến bước sóng của nó vượt qua qua giá trị 660 nm. Để ước tính chính xác bước sóng của Led đỏ đang sáng → ta cần dựa vào:
- Dòng điện qua Led hiện tại.
- Nhiệt độ hiện tại của IC (đọc từ cảm biến nhiệt độ bên trong cảm biến).