arduino max30102心率血氧传感器
时间: 2025-01-05 13:15:06 浏览: 79
### 关于Arduino与MAX30102心率血氧传感器连接及使用
#### 连接方法
为了使 MAX30102 脉搏血氧计和心率传感器正常工作并将其与 Arduino 成功连接,需遵循特定的硬件配置。该传感器通过 I²C 接口通信,因此只需四根线即可完成基本连接:VCC、GND、SDA 和 SCL[^1]。
- **VCC** (电源正极): 连接到 Arduino 的 3.3V 或者 5V 输出端子。
- **GND** (接地): 连接到 Arduino 的 GND 引脚。
- **SDA** (串行数据线): 对应到 Arduino 上用于IIC/I²C通讯的数据线引脚(A4或对应型号上的其他指定位置)。
- **SCL** (串行时钟线): 对应到 Arduino 上用于IIC/I²C通讯的时钟线引脚(A5或对应型号上的其他指定位置)。
#### 示例代码
下面提供一段简单的示例程序来读取来自 MAX30102 的红光 LED 和红外 LED 数据,并计算心率以及SpO₂ 值:
```cpp
#include <Wire.h>
#include "MAX30102.h"
#include "HeartRate.h"
// 创建对象实例
MAX30102 particleSensor;
HeartRate heartRate;
void setup() {
Serial.begin(9600);
// 初始化传感器
if (!particleSensor.init()) {
while (1); // 如果初始化失败,则停止运行
}
}
void loop() {
int irValue, redValue;
// 获取原始IR/Red ADC数值
if(particleSensor.getIR(&irValue) && particleSensor.getRed(&redValue)){
// 将ADC值传递给heartRate库处理
heartRate.addSample(irValue, redValue);
float bpm = heartRate.getBPM();
float spo2 = heartRate.getSPO2();
if(!isnan(bpm)) Serial.print("BPM: ");Serial.println(bpm);
if(!isnan(spo2)) Serial.print("SpO2: ");Serial.println(spo2);
delay(1000); // 每秒更新一次测量结果
}else{
Serial.println("Failed to read sensor data");
}
}
```
此段代码依赖两个外部库文件 `MAX30102` 和 `HeartRate` 来简化操作流程。这些库可以从GitHub或其他开源平台下载安装[^2]。
阅读全文
相关推荐



















