1.1 介绍:

MAX30102心率传感器主要用到MAX30102EFD元件,它是一个集成脉搏血氧仪和心率监视仪的传感器。它集成了一个红外LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。

传感器包含I2C通信接口。使用时,我们利用该通信接口将采集到的数据传输给带有I2C通信接口的单片机,然后进行心率和血氧的计算。

1.2 模块相关资料:

工作电压:

3.3V-5V(DC)

工作电流:

50mA

最大功率:

0.25W

通信方式:

标准IIC通信协议

尺寸:

31.6mmx23.7mm

原理:MAX30102是一套完整的脉搏血氧仪和心率传感器系统解决方案模块,专为可穿戴设备的要求而设计。该设备保持一个非常小的解决方案的大小,而不牺牲光学或电气性能。要集成到可穿戴系统中,需要最少的外部硬件组件。

MAX30102完全可通过软件寄存器,和数字输出数据可以存储在一个32-deep FIFO IC。FIFO允许MAX30102被连接到微控制器或处理器在一个共享的总线,数据没有被从MAX30102读取连续的寄存器。

动脉血氧饱和度子系统

MAX30102的SpO2子系统包含环境光取消(ALC)、持续时间的sigma-delta ADC和专有的离散时间过滤器。ALC有一个内部轨道/保持电路来取消环境光和增加有效的动态范围。动脉血氧饱和度ADC具有可编程的全面范围从2µa 16µa。酒精度可以取消200µa周围的电流。

内部ADC是一个连续时间过采样的sigma-delta变换器,具有18位分辨率。ADC采样率为10.24MHz。ADC输出数据速率可以从50sps(每秒样本)到3200sps。

1.3实验器材:

控制板* 1

USB线*1

MAX30102*1

5P 转杜邦线母*1

1.4模块接线图:

1.5 实验代码:

/*

MAX30102心率传感器

https://sourl.cn/NbKeBf

*/

#include <Wire.h>

#include "MAX30105.h"

#include "heartRate.h"

MAX30105 particleSensor;

const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good.

byte rates[RATE_SIZE]; //Array of heart rates

byte rateSpot = 0;

long lastBeat = 0; //Time at which the last beat occurred

float beatsPerMinute;

int beatAvg;

void setup()

{

Serial.begin(115200);

Serial.println("Initializing...");

// Initialize sensor

if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed

{

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(); //Configure sensor with default settings

particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running

particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED

}

void loop()

{

long irValue = particleSensor.getIR();

if (checkForBeat(irValue) == true)

{

//We sensed a beat!

long delta = millis() - lastBeat;

lastBeat = millis();

beatsPerMinute = 60 / (delta / 1000.0);

if (beatsPerMinute < 255 && beatsPerMinute > 20)

{

rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array

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;

}

}

Serial.print("IR=");

Serial.print(irValue);

Serial.print(", BPM=");

Serial.print(beatsPerMinute);

Serial.print(", Avg BPM=");

Serial.print(beatAvg);

if (irValue < 50000)

Serial.print(" No finger?");

Serial.println();

}

程序编译前需要导入库文件,否则编译不通过,具体操作参考

资料的第四小节:库文件的添加(若前面已添加,无需重复)

1.6实验结果

按照接线图接线,上传测试代码成功,利用USB线上电后,打开串口监视器,设置波特率为115200,串口监视器显示如下图。

IR值为判断有无手指靠近的值(当手指没有靠近传感器时,IR值较小且显示No finger?贴近传感器后IR值剧增,且待测试数据进入测试范围值后开始示数),BMP值为心率,AVG BMP值为血氧饱和度。(Avg BPM)血氧饱和度是75-100,心率(BPM)60-150。

特别注意:注意事项:测试前先感应手指脉动,手指脉搏要完全贴合传感器15秒左右,才会显示稳定数据,串口监视器无数据显示时应挪动手指脉搏处利于传感器感应,或按UNO上的复位键,直到获得较平稳的数据。

Arduino使用 MAX30102心率传感器相关推荐

  1. 基于Arduino 开发 MAX30102 LM35 SSD1306 观察血氧、心率和温度血氧仪

    ↵本项目第一版本实现在arduino框架下通过MAX30102 对血氧和心率 进行实时监控,通过LM35 对温度进行监控 .所有数值在 ssd 1306 上进行显示.在血氧低过一定数值的时,设备会通过 ...

  2. 采用arduino UNO和pulse sensor心率传感器进行心率测量

    转自:anning86525的博客 网址:https://blog.csdn.net/anning86525/article/details/80096816 1.准备工作 首先阅读一遍我们编写的pu ...

  3. 【雕爷学编程】Arduino动手做(91)---XD-58C心率传感器

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  4. 【心率传感器与Arduino连接读取心率数据】

    心率传感器与Arduino连接读取心率数据 前言 脉冲传感器引脚 脉冲传感器模块如何工作? 脉冲传感器模块组成 关于脉冲传感器模块的常见问题 脉冲传感器模块电路图 Arduino 心率传感器 - 连接 ...

  5. Arduino Pulsesensor脉搏心率的检测

    开发板与传感器的型号 开发板:Arduino mega 2560 传感器:Pulsesensor脉搏心率传感器,我的模块购买链接https://m.tb.cn/h.fJbXs9y?tk=Wro828I ...

  6. Plusensor心率传感器简介

    今天小白给大家介绍一款很受欢迎的检测心率的传感器,即:PluseSensor传感器,欢迎大家一起讨论学习. 1 PluseSensor传感器简介 PulseSensor 是一款用于心率测量.脉搏波形测 ...

  7. 第三次培训任务:心率传感器和烟雾传感器

    (撰写时间:2020-08-01) 一.心率传感器PulseSensor Pulse Sensor是一款用来检测心率的传感器,只需要用手指按住传感器就可以测量. 1.外观 2.PluseSensor传 ...

  8. 单片机课程设计数字心率计_光学心率传感器详细使用教程

    该方法非常简单,光学心率传感器基于以下工作原理:当血流动力发生变化时,例如血脉搏率(心率)或血容积(心输出量)发生变化时,进入人体的光会发生可预见的散射.下图1介绍了光学心率传感器的主要元件和基本工作 ...

  9. 光学心率传感器工作原理

    光学心率测量原理 原博地址 http://blog.csdn.net/richard_liujh/article/details/49615395 简介: 在这个什么都要和"智能" ...

最新文章

  1. 基于Pytorch的动态卷积复现
  2. java 流 下载文件_java 流实现文件下载问题
  3. 收银系统服务器数据库,收银系统服务器数据库
  4. dg oracle 切换模式_oracle dg切换操作示例
  5. 表单一次性上传多个文件
  6. django2连接mysql_Django2.2连接MySQL问题解决
  7. c 语言教程文档,c语言基本教程
  8. 如何查看网页缓存的密码
  9. HDFS集群常见异常及排查步骤
  10. eclipse 搭建python环境
  11. 使用mapboxgl 实现特定的地图效果
  12. win7用html做背景,怎么美化和自定义Win7鼠标右键菜单背景?
  13. 小米稳定版怎么刷开发版
  14. 什么是pid控制算法_智能车运动控制 ——PID简介
  15. scp lost connection
  16. 常见的百度蜘蛛IP 日志分析
  17. LeetCode - 点菜展示表
  18. css动态特效 @keyframes
  19. 中国移动光猫桥接模式
  20. 第三方登陆——QQ登陆详解

热门文章

  1. 机器人(自动化)等专业课程创新的结果
  2. 常用ftp大全.txt
  3. Photoshop CC Coloring Comic Characters Photoshop CC漫画人物着色教程 Pluralsight课程中文字幕
  4. 免费Web接口调用大全
  5. angular4的脏值检测
  6. c++自制锁机程序--两行代码
  7. UltraISO软件下载安装及制作 Linux 系统 U 盘启动盘
  8. MinGW下载并配置gcc/g++编译环境
  9. Fluent多孔介质模拟固体区域(观点)
  10. 各内网客户端实现P2P方案