心率血氧传感器模块MAX30102实物图
文章来源地址https://www.toymoban.com/news/detail-525762.html
模块简介
MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。
它集成了一个红光LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。
MAX30102采用一个1.8V电源和一个独立的5.0V用于内部LED的电源,应用于可穿戴设备进行心率和血氧采集检测,佩戴于手指点耳垂和手腕处。
标准的I2C兼容的通信接口可以将采集到的数值传输给Arduino、KL25Z、STM32、STC51等单片机进行心率和血氧计算。
此外,该芯片还可以通过软件关断模块,待机电流接近为零,实现电源始终维持供电状态。
未把手指放上时------
把手指放上检测------
文章来源:https://www.toymoban.com/news/detail-525762.html
#include <Wire.h>
#include "MAX30105.h"
#include "heartRate.h"
MAX30105 particleSensor;
const byte RATE_SIZE = 4;
byte rates[RATE_SIZE]; // 心率数组
byte rateSpot = 0;
long lastBeat = 0; // 最后记录心率的时间
float beatsPerMinute;
int beatAvg;
int Buzzer;
int pin=8;
void setup()
{
Serial.begin(115200);
Serial.println("Initializing...");
// 初始化传感器
if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) // 默认使用I2C,400KHZ频率
{
Serial.println("MAX30105 was not found. Please check wiring/power. ");
while (1);
}
Serial.println("Place your index finger on the sensor with steady pressure.");
particleSensor.setup(); //使用默认设置配置传感器
particleSensor.setPulseAmplitudeRed(0x0A); // 将红色LED拉低,表示传感器正在运行
}
void loop()
{
long irValue = particleSensor.getIR();
if (checkForBeat(irValue) == true)
{
// 感应到心率
long delta = millis() - lastBeat;
lastBeat = millis();
beatsPerMinute = 60 / (delta / 1000.0);
if (beatsPerMinute < 255 && beatsPerMinute > 20)
{
rates[rateSpot++] = (byte)beatsPerMinute; // 将此读数存储在数组中
rateSpot %= RATE_SIZE; //Wrap variable
//Take average of readings 取读数的平均值
beatAvg = 0;
for (byte x = 0 ; x < RATE_SIZE ; x++)
beatAvg += rates[x];
beatAvg /= RATE_SIZE;
if (beatsPerMinute > 70)
{
digitalWrite(8,HIGH) ; //蜂鸣器响
delay(1000); //延时1000ms
digitalWrite(8,LOW); //蜂鸣器关闭
}
}
}
Serial.print("IR=");
Serial.print(irValue);
Serial.print(", BPM=");
Serial.print(beatsPerMinute);
Serial.print(", Avg BPM=");
Serial.print(beatAvg);
if (irValue < 50000)
Serial.print(" 未识别?");
Serial.println();
}
到了这里,关于心率血氧传感器模块MAX30102的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!