Arduino使用 MAX30102心率传感器
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心率传感器相关推荐
- 基于Arduino 开发 MAX30102 LM35 SSD1306 观察血氧、心率和温度血氧仪
↵本项目第一版本实现在arduino框架下通过MAX30102 对血氧和心率 进行实时监控,通过LM35 对温度进行监控 .所有数值在 ssd 1306 上进行显示.在血氧低过一定数值的时,设备会通过 ...
- 采用arduino UNO和pulse sensor心率传感器进行心率测量
转自:anning86525的博客 网址:https://blog.csdn.net/anning86525/article/details/80096816 1.准备工作 首先阅读一遍我们编写的pu ...
- 【雕爷学编程】Arduino动手做(91)---XD-58C心率传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 【心率传感器与Arduino连接读取心率数据】
心率传感器与Arduino连接读取心率数据 前言 脉冲传感器引脚 脉冲传感器模块如何工作? 脉冲传感器模块组成 关于脉冲传感器模块的常见问题 脉冲传感器模块电路图 Arduino 心率传感器 - 连接 ...
- Arduino Pulsesensor脉搏心率的检测
开发板与传感器的型号 开发板:Arduino mega 2560 传感器:Pulsesensor脉搏心率传感器,我的模块购买链接https://m.tb.cn/h.fJbXs9y?tk=Wro828I ...
- Plusensor心率传感器简介
今天小白给大家介绍一款很受欢迎的检测心率的传感器,即:PluseSensor传感器,欢迎大家一起讨论学习. 1 PluseSensor传感器简介 PulseSensor 是一款用于心率测量.脉搏波形测 ...
- 第三次培训任务:心率传感器和烟雾传感器
(撰写时间:2020-08-01) 一.心率传感器PulseSensor Pulse Sensor是一款用来检测心率的传感器,只需要用手指按住传感器就可以测量. 1.外观 2.PluseSensor传 ...
- 单片机课程设计数字心率计_光学心率传感器详细使用教程
该方法非常简单,光学心率传感器基于以下工作原理:当血流动力发生变化时,例如血脉搏率(心率)或血容积(心输出量)发生变化时,进入人体的光会发生可预见的散射.下图1介绍了光学心率传感器的主要元件和基本工作 ...
- 光学心率传感器工作原理
光学心率测量原理 原博地址 http://blog.csdn.net/richard_liujh/article/details/49615395 简介: 在这个什么都要和"智能" ...
最新文章
- 基于Pytorch的动态卷积复现
- java 流 下载文件_java 流实现文件下载问题
- 收银系统服务器数据库,收银系统服务器数据库
- dg oracle 切换模式_oracle dg切换操作示例
- 表单一次性上传多个文件
- django2连接mysql_Django2.2连接MySQL问题解决
- c 语言教程文档,c语言基本教程
- 如何查看网页缓存的密码
- HDFS集群常见异常及排查步骤
- eclipse 搭建python环境
- 使用mapboxgl 实现特定的地图效果
- win7用html做背景,怎么美化和自定义Win7鼠标右键菜单背景?
- 小米稳定版怎么刷开发版
- 什么是pid控制算法_智能车运动控制 ——PID简介
- scp lost connection
- 常见的百度蜘蛛IP 日志分析
- LeetCode - 点菜展示表
- css动态特效 @keyframes
- 中国移动光猫桥接模式
- 第三方登陆——QQ登陆详解