max30102模块(MAX30102模块原理)

max30102模块(MAX30102模块原理)MAX30102 脉搏血氧计和心率传感器是一款基于 I2C 的低功耗即插即用生物识别传感器 想要将实时心率数据合并到项目中的学生 爱好者 工程师 制造商以及游戏和移动开发人员都可以使用它 该模块采用 MAX30102 来自 Analog Devices 的现代集成脉搏血氧计和心率传感器 IC nbsp MAX30100 的后继产品 它结合了两个 LED 一个光电探测器 优化的光学器件和低噪声模拟信号处理 可检测脉搏血氧饱和度 SpO2 和心率 HR



MAX30102脉搏血氧计和心率传感器是一款基于I2C的低功耗即插即用生物识别传感器。想要将实时心率数据合并到项目中的学生、爱好者、工程师、制造商以及游戏和移动开发人员都可以使用它。

该模块采用 MAX30102——来自 Analog Devices 的现代集成脉搏血氧计和心率传感器 IC ( MAX30100的后继产品)。它结合了两个 LED、一个光电探测器、优化的光学器件和低噪声模拟信号处理,可检测脉搏血氧饱和度 (SpO2) 和心率 (HR) 信号。

MAX30102 在一侧窗户后面有两个 LED – 一个红色 LED 和一个红外 LED。另一侧是一个非常灵敏的光电探测器。这个想法是,您一次点亮一个 LED,检测探测器上反射回来的光量,然后根据签名,您可以测量血氧水平和心率。

电力需求

MAX30102芯片需要两种不同的电源电压:IC的电源电压为1.8V,红色和红外LED的电源电压为3.3V。因此该模块配有 3.3V 和 1.8V 稳压器。

在 PCB 背面,您会发现一个焊接跳线,可用于在 3.3V 和 1.8V 逻辑电平之间进行选择。默认选择 3.3V 逻辑电平,与 Arduino 的逻辑电平兼容。但您也可以根据您的要求选择 1.8V 逻辑电平。这允许您将模块连接到具有 5V、3.3V、甚至 1.8V 电平 I/O 的任何微控制器。

MAX30102最重要的特性之一是其低功耗:测量期间MAX30102的功耗低于600μA。此外,还可以将 MAX30102 置于待机模式,此时功耗仅为 0.7μA。这种低功耗允许在手机、可穿戴设备或智能手表等电池供电设备中实施。

片上温度传感器

MAX30102具有片上温度传感器,可用于补偿环境变化并校准测量结果。

这是一款相当精确的温度传感器,可测量 -40°C 至 +85°C 范围内的“芯片温度”,精度为 ±1°C。

I2C接口

该模块使用简单的两线 I2C 接口与微控制器进行通信。它有一个固定的I2C地址:0xAE HEX(用于写操作)和0xAF HEX(用于读操作)。

先进先出缓冲器

MAX30102嵌入了一个用于存储数据样本的FIFO缓冲器。FIFO 具有 32 个样本存储库,这意味着它可以容纳多达 32 个 SpO2 和心率样本。FIFO 缓冲区可以减轻微控制器从传感器读取每个新数据样本的负担,从而节省系统功耗。

中断

MAX30102可编程为产生中断,允许主机微控制器在传感器收集数据的同时执行其他任务。可以为 5 个不同的源启用中断:

  • 电源就绪:在通电时或断电情况后触发。
  • 新数据就绪:收集每个 SpO2 和 HR 数据样本后触发。
  • 环境光消除:当SpO2/HR光电二极管的环境光消除功能达到最大极限时触发,影响ADC的输出。
  • 温度就绪:内部芯片温度转换完成时触发。
  • FIFO 几乎已满:当 FIFO 已满且未来数据即将丢失时触发。

INT 线是开漏极,因此它被板载电阻拉高。当中断发生时,INT 引脚变为低电平并保持低电平直到中断被清除。

技术规格

以下是技术规格:

电源3.3V至5.5V电流消耗~600μA(测量期间)~0.7μA(待机模式期间)红色 LED 波长660nm红外 LED 波长880nm温度范围-40°C 至 +85°C温度准确度±1℃

您可以从数据表中找到有关 MAX30102 传感器的详细信息。

MAX30102 或任何光学脉搏血氧计和心率传感器由一对高强度 LED(红色和红外,波长不同)和一个光电探测器组成。这些 LED 的波长分别为 660nm 和 880nm。

MAX30102 的工作原理是将两束光照射到手指或耳垂(或者基本上是皮肤不太厚的任何地方,因此两束光可以轻松穿透组织),并使用光电探测器测量反射光量。这种通过光检测脉搏的方法称为光电体积描记法。

MAX30102的工作可以分为两部分:心率测量和脉搏血氧饱和度(测量血液中的含氧量)。

心率测量

动脉血中的氧合血红蛋白(HbO2)具有吸收红外光的特性。血液越红(血红蛋白越高),吸收的红外光就越多。当血液随着每次心跳泵入手指时,反射光的量会发生变化,从而在光电探测器的输出端产生变化的波形。当您继续照射光线并获取光电探测器读数时,您很快就会开始获得心率 (HR) 脉搏读数。

脉搏血氧仪

脉搏血氧测定法的原理是,吸收的红光和红外光的量根据血液中的氧含量而变化。下图是含氧血红蛋白(HbO2)和脱氧血红蛋白(Hb)的吸收光谱。

从图中可以看出,脱氧血液吸收更多红光 (660nm),而含氧血液吸收更多红外光 (880nm)。通过测量光电探测器接收到的红外光和红光的比率,可以计算出血液中的氧含量 (SpO2)。

你可知道?

1935 年,德国医生 Karl Matthes 提出通过测量红光和红外光的吸光度来测量血红蛋白氧饱和度 (HbO2)。

起初,没有好的光电探测器,因此使用光谱的绿光波段代替红外波段。随着技术的进步,更可靠的方法被开发出来,绿光被红外光取代。

MAX30102模块提供以下连接。

VIN是电源引脚。您可以将其连接到 Arduino 的 3.3V 或 5V 输出。

SCL是I2C时钟引脚,连接到Arduino的I2C时钟线。

SDA是I2C数据引脚,连接到Arduino的I2C数据线。

INTMAX30102可编程为每个脉冲生成一个中断。该线是漏极开路,因此它被板载电阻拉高。当中断发生时,INT 引脚变为低电平并保持低电平直到中断被清除。

IDRMAX30102 集成了 LED 驱动器,用于驱动 LED 脉冲以进行 SpO2 和 HR 测量。如果您想自己驱动 IR LED,请使用此选项,否则请将其悬空。

RD引脚与 IRD 引脚类似,但用于驱动红色 LED。如果您不想自己驱动红色 LED,请将其悬空。

GND是地面。

现在我们已经了解了该模块的所有信息,我们可以开始将其连接到我们的 Arduino 了!

首先将VCC引脚连接到电源,3V-5V即可。使用与微控制器逻辑相同的电压。对于大多数 Arduino,电压为 5V。对于 3.3V 逻辑器件,请使用 3.3V。现在将 GND 连接到公共地。

将 SCL 引脚连接到 Arduino 上的 I2C 时钟引脚,将 SDA 引脚连接到 I2C 数据引脚。请注意,每个 Arduino 板都有不同的 I2C 引脚,应进行相应的连接。在采用 R3 布局的 Arduino 板上,SDA(数据线)和 SCL(时钟线)位于靠近 AREF 引脚的排针上。它们也称为 A5 (SCL) 和 A4 (SDA)。

下图显示了接线。

有多个库可用于 MAX30102 传感器。然而,在我们的示例中,我们使用的是SparkFun Electronics的产品。该库展示了 MAX30102 的大部分功能,并提供简单易用的函数来计算脉率和 SpO2。您可以从 Arduino IDE 库管理器下载该库。

要安装库,请导航至 Sketch > Include Library > Manage Libraries... 等待库管理器下载库索引并更新已安装库的列表。

输入MAX3010x来过滤您的搜索。查找SparkFun MAX3010x 脉冲和接近传感器库。单击该条目,然后选择安装。

SparkFun_MAX3010x 库有许多示例草图。您可以使用这些示例草图作为开发自己的代码的基础。

要访问示例草图,请导航至文件 > 示例 > SparkFun MAX3010x 脉冲和接近传感器库。您将看到精选的示例草图。

第一个示例输出传感器读取的原始值(IR 和红色读数)。将其加载到 Arduino 上并打开串行终端以查看打印值。

将传感器朝上,将手滑过传感器。当您的手反射不同量的光时,您应该会看到值的变化。

如果您只查看值,则串行数据可能很难可视化。如果您使用的是 Arduino IDE v1.6.6+,可以选择使用Arduino 串行绘图仪查看图表上的数据。

首先,将上面代码中的loop()替换为以下代码片段:

在 Arduino IDE 中,选择“工具”>“串行绘图仪”。当您在传感器上滑动手时,您应该会看到类似于下图的波浪。

我们的下一个实验展示了如何使用 MAX30102 传感器作为通用接近传感器或反射传感器,并且可以作为更实际的实验和项目的基础。

此示例的工作原理是在设置期间获取少量读数并将它们平均在一起。然后它使用该平均值作为基线。如果传感器检测到平均值有显着变化,“有东西在那里!” 被打印。继续尝试绘制草图。

再次将手滑过传感器并查找消息“有东西在那里!” 打印在串行终端上。尝试测试传感器可以检测到某些东西的范围。

请注意,MAX30102 能够读取最多 18 位或最多 262,144 个值。可以检测到极小的运动!

我们的下一个示例以摄氏度和华氏度输出板载温度传感器的读数。尽管温度读数应用于校准 HR 和 SpO2 测量值,但如果您需要灵敏且快速响应的温度传感器,它可能会很有用。

现在尝试用手指加热传感器或对传感器轻轻吹气。您应该看到类似于下面的输出。

这就是乐趣的开始!在此示例中,我们将测量所监测人员的心率(每分钟心跳数或 BPM)。

警告:

该草图以光学方式检测心率。这种方法很棘手并且容易给出错误的读数。所以请不要将其用于实际的医疗诊断。

上传草图后,将手指尽可能稳定地放在传感器上,并等待几秒钟以使读数稳定。你会看到这样的结果。

如果您看不到心跳,请执行以下操作。

  • 如果握传感器太用力,手指上的血就会被挤干,而且没有任何迹象!如果握得太轻,就会因运动和环境光而产生噪音。脉搏传感器上的汗点压力(不要太硬,不要太软)将给出良好的干净信号。
  • 不同的压力会导致手指中的血液流动不同,从而导致传感器读数不稳定。尝试使用橡皮筋或其他紧固装置将传感器固定在手指上,施加恒定的压力。
  • 在身体有毛细组织的不同部位(例如耳垂或下唇)尝试使用传感器。

在最后一个示例中,我们将测量所监测人员的血氧水平 (SpO2)。继续尝试绘制草图。

上传草图后,将手指尽可能稳定地放在传感器上,并等待几秒钟以使读数稳定;。你会看到这样的结果。

编程小号
上一篇 2025-04-12 21:51
下一篇 2025-04-12 22:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/77003.html