赞
踩
心率血氧传感器模块MAX30102实物图
模块简介
MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。
它集成了一个红光LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。
MAX30102采用一个1.8V电源和一个独立的5.0V用于内部LED的电源,应用于可穿戴设备进行心率和血氧采集检测,佩戴于手指点耳垂和手腕处。
标准的I2C兼容的通信接口可以将采集到的数值传输给Arduino、KL25Z、STM32、STC51等单片机进行心率和血氧计算。
此外,该芯片还可以通过软件关断模块,待机电流接近为零,实现电源始终维持供电状态。
未把手指放上时------
把手指放上检测------
- #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();
- }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。