欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

血氧飽和度傳感器MAX30102模塊的原理及參數(shù)

CHANBAEK ? 來(lái)源:CSDN-_會(huì)飛_的魚 ? 作者:CSDN-_會(huì)飛_的魚 ? 2023-03-07 14:51 ? 次閱讀

一. 簡(jiǎn)介

MAX30102是一個(gè)集成的脈搏血氧儀和心率監(jiān)測(cè)儀生物傳感器的模塊(芯片)。 它集成了一個(gè)660nm紅光LED、880nm紅外光LED、光電檢測(cè)器、光器件,以及帶環(huán)境光抑制的低噪聲電子電路。 可通過軟件關(guān)斷模塊,待機(jī)電流為零,實(shí)現(xiàn)電源始終維持供電狀態(tài),可運(yùn)用于低功耗產(chǎn)品中。

MAX30102采用一個(gè)1.8V電源和一個(gè)獨(dú)立的3.3V用于內(nèi)部LED的電源,標(biāo)準(zhǔn)的I2C兼容的通信接口。 市面很多都將MAX30102芯片集成在一個(gè)PCB模塊上,內(nèi)部增加一個(gè)1.8V和3.3V LDO穩(wěn)壓電路,可對(duì)模塊單獨(dú)供5.0V電源,方便開發(fā)者進(jìn)行開發(fā)。

二. MAX30102原理及參數(shù)

1. 芯片內(nèi)部框圖

截圖20230301181839.png

從框圖看,芯片可分為兩部分,一部分為模擬信號(hào)采集電路,通過RED和IR燈發(fā)出特定波長(zhǎng)的光,采集人體反射回來(lái)的光,經(jīng)過PD管將光信號(hào)轉(zhuǎn)化為電信號(hào),最終通過18bit ADC轉(zhuǎn)換器轉(zhuǎn)化為數(shù)字信號(hào)。

第二部分為數(shù)字處理電路,將ADC轉(zhuǎn)換出來(lái)的原始數(shù)據(jù)進(jìn)行濾波處理后放置于緩沖區(qū)內(nèi); 單片機(jī)通過IIC接口讀寫芯片內(nèi)部寄存器,讀取出相應(yīng)的數(shù)據(jù);

2. 模塊電路

截圖20230301181839.png

芯片內(nèi)部有3.3V-5.0V的LED電源和1.8V的邏輯電源,所以模塊帶有兩路穩(wěn)壓電路,將5V電源分別轉(zhuǎn)化為3.3V和1.8V;由于LED驅(qū)動(dòng)電源的供電范圍為3.3V-5.0V,3.3V穩(wěn)壓電路可省去。

由于MAX30102的邏輯電路的IIC通信電平為1.8V,這與我們常用的51單片機(jī)STM32單片機(jī)的引腳電平不匹配。

這里有個(gè)解決方法,因?yàn)镸AX30102的SDA、SCL、INT引腳為開漏,

截圖20230301181839.png

可以將模塊上的R1、R2、R3電阻去掉,對(duì)于51單片機(jī)來(lái)說(shuō),在SDA、SCL、INT引腳上分別加一個(gè)4.7-10k電阻上拉至5V;對(duì)于STM32單片機(jī),只需要將相應(yīng)的控制引腳配置為上拉模式即可。

模塊只需要接上5V電源,SDA、SCL、INT引腳與單片機(jī)連接即可; IRD、RD一般不接,以STM32單片機(jī)接線為例(單片機(jī)采用模擬IIC的控制方式),如圖:

截圖20230301181839.png

三. MAX30102編程

MAX30102內(nèi)部集成了一整套完整信號(hào)采集電路,包括光信號(hào)發(fā)射及接收、AD轉(zhuǎn)換、環(huán)境光干擾消除及數(shù)字濾波部分,只將數(shù)字接口留給用戶。 用戶只需通過單片機(jī)的IIC接口(可用模擬IIC),對(duì)MAX30102內(nèi)部的寄存器進(jìn)行讀寫操作,就可以得到轉(zhuǎn)換后的光強(qiáng)度數(shù)值。 最后需要通過相應(yīng)的處理算法計(jì)算出心率值和血氧飽和度。

對(duì)于MAX30102的驅(qū)動(dòng)程序,將其拆分出來(lái),可分為標(biāo)準(zhǔn)IIC程序和MAX30102寄存器的讀寫操作,實(shí)現(xiàn)這兩部分的編程,便完成MAX30102的驅(qū)動(dòng); 由于IIC程序比較常用,這里就不例舉出來(lái)。 在完成IIC的通信程序后,實(shí)現(xiàn)以下程序;

(1)MAX30102寫寄存器函數(shù)

u8 max30102_Bus_Write(u8 Register_Address, u8 Word_Data)
{
  /* 采用串行EEPROM隨即讀取指令序列,連續(xù)讀取若干字節(jié) */
  /* 第1步:發(fā)起I2C總線啟動(dòng)信號(hào) */
  i2c_Start();
  /* 第2步:發(fā)起控制字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  i2c_SendByte(max30102_WR_address | I2C_WR);/* 此處是寫指令 */
  /* 第3步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第4步:發(fā)送字節(jié)地址 */
  i2c_SendByte(Register_Address);
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第5步:開始寫入數(shù)據(jù) */
  i2c_SendByte(Word_Data);
/* 第6步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
  return 1;/* 執(zhí)行成功 */
   cmd_fail: /* 命令執(zhí)行失敗后,切記發(fā)送停止信號(hào),避免影響I2C總線上其他設(shè)備 */
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
  return 0;
}

(2)MAX30102讀寄存器函數(shù)

u8 max30102_Bus_Read(u8 Register_Address)
{
  u8  data;
/* 第1步:發(fā)起I2C總線啟動(dòng)信號(hào) */
  i2c_Start();
/* 第2步:發(fā)起控制字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  i2c_SendByte(max30102_WR_address | I2C_WR);/* 此處是寫指令 */
/* 第3步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第4步:發(fā)送字節(jié)地址, */
  i2c_SendByte((uint8_t)Register_Address);
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第6步:重新啟動(dòng)I2C總線。下面開始讀取數(shù)據(jù) */
  i2c_Start();
/* 第7步:發(fā)起控制字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  i2c_SendByte(max30102_WR_address | I2C_RD);/* 此處是讀指令 */
/* 第8步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第9步:讀取數(shù)據(jù) */
  {
    data = i2c_ReadByte();/* 讀1個(gè)字節(jié) */
    i2c_NAck();/* 最后1個(gè)字節(jié)讀完后,CPU產(chǎn)生NACK信號(hào)(驅(qū)動(dòng)SDA = 1) */
  }
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
  return data;/* 執(zhí)行成功 返回data值 */
  cmd_fail: /* 命令執(zhí)行失敗后,切記發(fā)送停止信號(hào),避免影響I2C總線上其他設(shè)備 */
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
  return 0;
}

(3)MAX30102讀緩沖器FIFO

void max30102_FIFO_Read(u8 Register_Address,u16  Word_Data[][2],u8 count)
{
  u8 i=0;
  u8 no = count;
  u8 data1, data2;
/* 第1步:發(fā)起I2C總線啟動(dòng)信號(hào) */
  i2c_Start();
/* 第2步:發(fā)起控制字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  i2c_SendByte(max30102_WR_address | I2C_WR);/* 此處是寫指令 */
/* 第3步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第4步:發(fā)送字節(jié)地址, */
  i2c_SendByte((uint8_t)Register_Address);
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第6步:重新啟動(dòng)I2C總線。下面開始讀取數(shù)據(jù) */
  i2c_Start();
/* 第7步:發(fā)起控制字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */
  i2c_SendByte(max30102_WR_address | I2C_RD);/* 此處是讀指令 */
/* 第8步:發(fā)送ACK */
  if (i2c_WaitAck() != 0)
  {
    goto cmd_fail;/* EEPROM器件無(wú)應(yīng)答 */
  }
/* 第9步:讀取數(shù)據(jù) */
  while (no)
  {  
    data1 = i2c_ReadByte();
    i2c_Ack();
    data2 = i2c_ReadByte();
    i2c_Ack();
    Word_Data[i][0] = (((u16)data1 << 8) | data2);  //
    data1 = i2c_ReadByte();
    i2c_Ack();
    data2 = i2c_ReadByte();
    if(1==no)
      i2c_NAck();/* 最后1個(gè)字節(jié)讀完后,CPU產(chǎn)生NACK信號(hào)(驅(qū)動(dòng)SDA = 1) */
    else
      i2c_Ack();
     Word_Data[i][1] = (((u16)data1 << 8) | data2);
    no--;
    i++;
  }
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
  cmd_fail: /* 命令執(zhí)行失敗后,切記發(fā)送停止信號(hào),避免影響I2C總線上其他設(shè)備 */
/* 發(fā)送I2C總線停止信號(hào) */
  i2c_Stop();
}

(4)MAX30102初始化(可根據(jù)自己的實(shí)際情況更改相應(yīng)的配置)

void max30102_init()
{
  max30102_Bus_Write(0x09, 0x0b);  //mode configuration : temp_en[3]      MODE[2:0]=010 HR only enabled    011 SP02 enabled
  max30102_Bus_Write(0x01, 0xF0); //open all of interrupt
  max30102_Bus_Write(INTERRUPT_REG, 0x00); //all interrupt clear
  max30102_Bus_Write(0x03, 0x02); //DIE_TEMP_RDY_EN
  max30102_Bus_Write(0x21, 0x01); //SET   TEMP_EN
  max30102_Bus_Write(0x0a, 0x47); //SPO2_SR[4:2]=001  100 per second    LED_PW[1:0]=11  16BITS
  max30102_Bus_Write(0x0c, 0x47);
  max30102_Bus_Write(0x0d, 0x47);
}

(5)數(shù)據(jù)采集

此程序只演示讀取出溫度,讀取血氧數(shù)據(jù)需要通過max30102_FIFO_Read函數(shù)讀出;

int main(void)
{
  u8 temp_num=0;
  main_init();
  max30102_init();
  printf("\\r\\n MAX30102  init  \\r\\n");
  while(1)
  {
    delay_ms(1000);            
    max30102_init();
    temp_num = max30102_Bus_Read(0x1f);
    printf("當(dāng)前溫度 = %d\\r\\n",temp_num);
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51427

    瀏覽量

    756781
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51243

    瀏覽量

    427514
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2736

    瀏覽量

    47768
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4326

    文章

    23170

    瀏覽量

    400106
  • MAX30102
    +關(guān)注

    關(guān)注

    4

    文章

    13

    瀏覽量

    2627
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MAX30102心律脈搏傳感器的原理及使用說(shuō)明

    MAX30102 是一個(gè)集成的脈搏儀和心率監(jiān)測(cè)儀生物傳感器模塊。它集成了一個(gè)紅光 LED和一個(gè)紅外光 LED、光電檢測(cè)
    發(fā)表于 10-18 11:03 ?3.2w次閱讀

    利用CMOS影像傳感器飽和度監(jiān)測(cè)系統(tǒng)

    利用CMOS影像傳感器飽和度監(jiān)測(cè)系統(tǒng)動(dòng)脈飽和度
    發(fā)表于 11-30 10:55

    max30102、心率傳感器

    請(qǐng)問有人用過max30102傳感器么? 手冊(cè)里面有個(gè)Proximity Function 功能。大概意思就是 設(shè)置完
    發(fā)表于 07-24 15:42

    MAX30102 濃度+心率傳感器

    淘寶上雖然都賣MAX30102傳感器模塊,但是帶的資料里面都沒有相關(guān)程序。下面是STM32F103的使用程序,大家參考下
    發(fā)表于 07-28 18:24

    MAX30102脈搏模塊AT指令串口輸出

    `MAX30102脈搏模塊AT指令串口輸出芯片說(shuō)明MAX30102是一個(gè)集成的脈搏
    發(fā)表于 03-10 17:14

    MAX30102模塊的原理及編程 精選資料分享

    一.簡(jiǎn)介MAX30102是一個(gè)集成的脈搏儀和心率監(jiān)測(cè)儀生物傳感器模塊(芯片)。它集成了一個(gè)660nm紅光LED、880nm紅外光LED
    發(fā)表于 07-19 09:15

    STM32是如何去MAX30102心率傳感器

    STM32F103單片機(jī)通過IIC控制MAX30102心率傳感器MAX30102的VCC引腳連接STM32F103mini單片機(jī)的5伏引
    發(fā)表于 08-19 08:33

    基于MAX30100/MAX30102傳感器設(shè)計(jì)的和心率檢測(cè)相關(guān)資料分享

    基于美信MAX30100/MAX30102傳感器設(shè)計(jì)的和心率檢測(cè),以單片機(jī)STM32F103CBT6為主控核心,其中涉及電源
    發(fā)表于 11-10 07:27

    心率MAX30102模塊資料分享

    心率MAX30102模塊資料話不多說(shuō),
    發(fā)表于 01-07 08:02

    基于MAX30102的心率傳感器設(shè)計(jì)

    最近的一個(gè)項(xiàng)目需要用到一款心率傳感器,選型選擇了MAX30102,可以在ArduinoIDE中搜到MAX3010X庫(kù),包含了簡(jiǎn)單讀取、心
    發(fā)表于 01-13 06:24

    MAX30102模塊的原理及編程

    一.簡(jiǎn)介MAX30102是一個(gè)集成的脈搏儀和心率監(jiān)測(cè)儀生物傳感器模塊(芯片)。它集成了一個(gè)660nm紅光LED、880nm紅外光LED
    發(fā)表于 11-11 15:51 ?93次下載
    <b class='flag-5'>MAX30102</b><b class='flag-5'>血</b><b class='flag-5'>氧</b><b class='flag-5'>模塊</b>的原理及編程

    高靈敏脈搏儀和心率傳感器max30102說(shuō)明書

    高靈敏脈搏儀和心率傳感器max30102說(shuō)明書
    發(fā)表于 11-16 17:05 ?74次下載

    DFRobot心率傳感器有哪些,心率傳感器的原理

    DFRobot Gravity: MAX30102 心率傳感器模塊搭載了美信(maxim)的MAX3
    的頭像 發(fā)表于 02-22 16:27 ?5724次閱讀
    DFRobot心率<b class='flag-5'>血</b><b class='flag-5'>氧</b><b class='flag-5'>傳感器</b>有哪些,心率<b class='flag-5'>血</b><b class='flag-5'>氧</b><b class='flag-5'>傳感器</b>的原理

    如何使用MAX30102心律脈搏傳感器量測(cè)心跳和

    MAX30102 是一個(gè)集成的脈搏儀和心率監(jiān)測(cè)儀生物傳感器模塊。它集成了一個(gè)紅光 LED和一個(gè)紅外光 LED、光電檢測(cè)
    的頭像 發(fā)表于 11-16 16:18 ?7026次閱讀

    max30100和max30102的區(qū)別

    30100和MAX30102都是用于非侵入性測(cè)量的傳感器,可以通過脈搏波檢測(cè)和光電測(cè)量來(lái)監(jiān)測(cè)心率和飽和度。它們采用的技術(shù)原理是脈搏
    的頭像 發(fā)表于 12-28 16:54 ?5656次閱讀