首页 > 编程知识 正文

max3160,contec脉搏血氧仪使用说明书

时间:2023-05-05 16:27:55 阅读:95322 作者:2116

文章目录序言(获取文末源代码)一、PPG信号配置文件二、MAX30102配置文件1 )总体结构2 )寄存器三、步骤1.I2C通信2 .使用MAX30102初始化3 )数据读取4 )数据分析4、问题)

前言(文末获取源代码) Maxim MAX30102传感器集成了脉搏血氧计和心率监测模块。 MAX30102包括内部LED、光检测器、光学元件和低噪声电子元件,并且具有环境光反射特性。 该高灵敏度器件由1.8V单电源提供,其内部LED由独立的5.0V电源提供。 通过标准的I2C兼容接口进行通信。 该传感器可以通过软件关闭电源,待机模式下的电流消耗几乎为零。

另一方面,PPG信号的概述简单地说,PPG信号在皮肤组织受到光照射时,是血液流动光的吸收率的差异,而其他组织(例如骨、肌肉)对光的吸收率实际上是反射率反映了直流信号DC等,组织、骨骼、肌肉、静脉血反映了交流信号AC的流动。 根据AC、DC信号可以计算出动脉血心率、血氧

二、MAX30102概述1 .总体结构

可以看出,MAX30102的结构包括两个光电二极管(详细的计算公式在下一章进行介绍)、接收器、ADC通道、数字滤波器、数据寄存器和I2C通信模块。

2 .寄存器由状态寄存器、设置寄存器、温度寄存器三大部分构成。 也有版本号和设备ID的寄存器。 如下图所示。

三、步骤1 .使用I2C通信与一般的I2C通信方式不同,MAX30102的读写定时如下

步骤如下。

void max 30102 _ I2C _ write (uint8_ treg _ adder,uint8_t data ) {uint8_t transmit_data[2]; transmit_data[0]=reg_adder; transmit_data[1]=data; I2c_transmit(transmit_data,2 ); } void max 30102 _ I2C _ read (uint8_ treg _ adder,uint8_t *pdata,uint8_t data_size ) uint8_ tad der=reg i2220 I2c_receive(pdata,data_size ); } 2.MAX30102初始化比对datasheet设定RED:红光 IR:红外等参数的设定。 作为参考,实际使用起来很有效。

voidmax30102_init(void ) { uint8_t data; max 30102 _ I2C _ write (mode _ configuration,0x40 ); //resetthedevicedelay_ms(5; max 30102 _ I2C _ write (interrupt _ enable 1,0x E0 ); max 30102 _ I2C _ write (interrupt _ enable 2,0 x02; //interrupt enable : fifoalmostfullflag,new FIFO Data Ready,//ambientlightcancellationoverflow,power ready flag,//ing max 30102 _ I2C _ write (FIFO _ ov _ counter,0x00 ); max 30102 _ I2C _ write (FIFO _ rd _ pointer,0x00; //clearthepointermax 30102 _ I2C _ write (FIFO _ configuration,0x0F ); //FIFO configuration : sample averaging (1)、FIFO rolls on full(0) 0、FIFOalmostfullvalue ) 15 emptydatasampleswheninterue //spo 2配置: ACD解决方案:15.63 pa,sample rate control:100Hz,ledpulsewidth 3360215 _ smax 30102 _ I2C //ledcurrentmax 30102 _ I2C _ write (temperature _ config,0x01 ); //temperture max 30102 _ I2C _ read (interrupt _ status 1,data,1 ); max 30102 _ I2C _ read (interrupt _ status 2,data,1 ); //clear the flag} 3.读取数据为轮询方式,不使用引脚中断信号。 虽然使用过中断引脚的信息,但发现读出的数据波形不太好。 以10-15ms的延迟读取比较好。

void max 30102 _ FIFO _ read (uint 32 _ t * data ) { uint8_t receive_data[6],temp_data=0; max 30102 _ I2C _ read (interrupt _ status 1,temp_data,1 ); while((temp_data0x40 )!=0x40 ) max 30102 _ I2C _ read (interrupt _ status 1,temp_data,1 ); }max30102_I2c_read(FIFO_data,receive_data,6 ); data [0]=(receive _ data [0] 16|receive _ data [1]8| receive _ data [2]0x 03 ffff ); data [1]=(receive _ data [3] 16|receive _ data [4]8| receive _ data [5]0x 03 ffff ); } 4.数据分析max30102的灵敏度高,如下图所示:

与红外光采样率,工作模式,led电流相比,红外光似乎灵敏度更高。

pg信号的波形也比较漂亮。

四、存在的问题(已修正。 详细情况在下一章中) )每隔几个周期就会产生令人费解的干扰。 原因不明。 可能是硬件问题,也可能是数据读取方法有问题。 会解决的。手指未接近和接触后

获取工程源关注以下公众号,回复“两路信号”获取源; 如果您有任何问题,请用公众号回复“下一章将讨论心率、血氧的计算”,然后进入小组一起讨论和共享。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。