- UID
- 373967
- 帖子
- 9008
- 主題
- 2609
- 精華
- 0
- 積分
- 1003
- 楓幣
- 0
- 威望
- 980
- 存款
- 35891
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 460 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-12-22
|
PIC12F508製作偵測血氧機
需要的零件和相關資訊:
所需零件:
PIC12F508微控制器
MAX30100血氧傳感器模塊
16x2液晶顯示器模塊
220歐姆電阻
10K歐姆電阻
0.1uF陶瓷電容
杜邦線
連結腳位:
PIC12F508的連接腳位如下:
┌───┐
VDD –|1 8|-- VSS
GP5 –|2 7|-- GP0
GP4 –|3 6|-- GP1
GP3 –|4 5|-- GP2
└───┘
MAX30100血氧傳感器模組的連接腳位如下:
┌───┐
VIN –|1 8|-- GND
SCL –|2 7|-- SDA
INT –|3 6|-- RD
└───┘
16x2液晶顯示器模組的連接腳位如下:
┌───┐
VSS –|1 16|-- VDD
RS –|2 15|-- RW
E –|3 14|-- D0
D1 –|4 13|-- D1
D2 –|5 12|-- D2
D3 –|6 11|-- D3
D4 –|7 10|-- D4
D5 –|8 9|-- D5
└───┘
程式碼:
以下是用於讀取MAX30100血氧傳感器的基本程式碼
您可以使用此程式碼作為開始:
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;
void onBeatDetected()
{
Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
Serial.print("Initializing pulse oximeter..");
if (!pox.begin()) {
Serial.println("FAILED");
for(;;);
} else {
Serial.println("SUCCESS");
}
pox.setOnBeatDetectedCallback(onBeatDetected);
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
pox.setPulseAmplitudeRed(0x0A);
pox.setPulseAmplitudeIR(0x0A);
}
void loop()
{
pox.update();
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
tsLastReport = millis();
}
} |
|