Talaan ng mga Nilalaman:
- Hakbang 1: Nagpasya Akong Gumamit ng Arduino upang Patunayan ang Pag-andar ng Rate ng Puso at Dugo ng Koleksyon ng Oxygen ng MAX30100
- Hakbang 2: Mga Functional Assignment
- Hakbang 3: Panimula sa Hardware
- Hakbang 4: Mga Aplikasyon
- Hakbang 5: Mga Pakinabang at Tampok
- Hakbang 6: Prinsipyo sa Pagtuklas
- Hakbang 7: BATO STVI070WT-01
- Hakbang 8: Kung Hindi ka Sigurado Kung Paano Gumamit ng MAX3232, Mangyaring Sumangguni sa Mga Sumusunod na Larawan:
- Hakbang 9: Kung Kailangan mo ng Mga Video Tutorial at Tutorial na Gagamitin, Maaari mo rin itong Makita sa Opisyal na Website
- Hakbang 10: Mga Hakbang sa Pag-unlad
- Hakbang 11: Pag-install ng BATO TOOL Software
- Hakbang 12: Arduino
- Hakbang 13: Kapaligiran sa Pag-unlad
- Hakbang 14: Proseso ng Pagpapatupad ng Project ng Arduino LCD
- Hakbang 15:
- Hakbang 16: TFT LCD User Interface Design
- Hakbang 17: Alisin ang Larawan Na Na-load ng Default sa Bagong Proyekto, at Idagdag ang Larawan ng UI Na Dinisenyo Namin
- Hakbang 18: Idagdag ang Component sa Pagpapakita ng Teksto
- Hakbang 19:
- Hakbang 20: Bumuo ng Configuration File
- Hakbang 21: MAX30100
- Hakbang 22: Baguhin ang MAX30100 IIC Pull-up Resistor
- Hakbang 23: Arduino
- Hakbang 24: Maghanap para sa "MAX30100" upang Makahanap ng Dalawang Aklatan para sa MAX30100, Pagkatapos I-click ang I-download at I-install
- Hakbang 25: Matapos ang Pag-install, Mahahanap Mo ang Demo ng MAX30100 sa LIB Library Folder ng Arduino:
- Hakbang 26: I-double click ang File upang Buksan Ito
- Hakbang 27: Ang Kumpletong Code Ay Tulad ng Mga Sumusunod:
- Hakbang 28:
- Hakbang 29: Ipakita ang Data sa STONE Displayer Sa pamamagitan ng Arduino
- Hakbang 30: Ang Binagong Code Ay Tulad ng Mga Sumusunod:
- Hakbang 31: Ipakita ang Rate ng Puso sa LCD Gamit ang Arduino
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
maikling pagpapakilala
Ilang oras ang nakakaraan, nakakita ako ng module ng rate ng rate ng rate ng puso MAX30100 sa pamimili sa online. Ang module na ito ay maaaring mangolekta ng oxygen ng dugo at rate ng rate ng puso ng mga gumagamit, na simple at maginhawa ring gamitin. Ayon sa data, nalaman kong mayroong mga aklatan ng MAX30100 sa mga file ng library ng Arduino. Iyon ay upang sabihin, kung gagamitin ko ang komunikasyon sa pagitan ng Arduino at MAX30100, maaari kong direktang tawagan ang mga file ng library ng Arduino nang hindi kinakailangang muling isulat ang mga file ng driver. Ito ay isang magandang bagay, kaya't binili ko ang module ng MAX30100.
Hakbang 1: Nagpasya Akong Gumamit ng Arduino upang Patunayan ang Pag-andar ng Rate ng Puso at Dugo ng Koleksyon ng Oxygen ng MAX30100
Tandaan: ang modyul na ito sa pamamagitan lamang ng default na may mga pakikipag-usap sa antas ng 3.3 V na MCU, sapagkat nag-default ito sa paggamit ng IIC pin na nakuha ang pagtutol ng 4.7 K hanggang 1.8 V, kaya walang komunikasyon sa Arduino bilang default, kung nais mong makipag-usap sa Arduino at kailangan ng dalawang 4.7 K ng IIC pin pull-up risistor na konektado sa VIN pin, ang mga nilalaman na ito ay ipapakilala sa likod ng kabanata.
Hakbang 2: Mga Functional Assignment
Bago simulan ang proyektong ito, naisip ko ang tungkol sa ilang mga simpleng tampok:
- Ang data ng rate ng puso at data ng oxygen sa dugo ay nakolekta
- Ang data ng rate ng puso at oxygen ng dugo ay ipinapakita sa pamamagitan ng isang LCD screen
Ito lamang ang dalawang tampok, ngunit kung nais nating ipatupad ito, kailangan nating gumawa ng higit na pag-iisip:
- Anong master MCU ang ginagamit?
- Anong uri ng lcd displayer?
Tulad ng nabanggit namin kanina, ginagamit namin ang Arduino para sa MCU, ngunit ito ay isang proyekto ng pagpapakita ng Arduino LCD, kaya kailangan naming pumili ng naaangkop na LCD display module. Plano kong gamitin ang LCD display screen na may serial port. Mayroon akong isang tagapakita ng STONE STVI070WT-01 dito, ngunit kung kailangan ng Arduino na makipag-usap dito, kinakailangan ang MAX3232 upang gawin ang antas ng conversion. Pagkatapos ang mga pangunahing elektronikong materyales ay natutukoy tulad ng sumusunod:
1. Arduino Mini Pro development board
2. MAX30100 rate ng puso at module ng oxygen oxygen sensor
3. STONE STVI070WT-01 LCD serial port module ng pagpapakita
4. MAX3232 module
Hakbang 3: Panimula sa Hardware
MAX30100
Ang MAX30100 ay isang integrated pulse oximetry at solusyon sa rate ng monitor ng rate ng puso. Pinagsasama nito ang dalawang LEDs, isang photodetector, na-optimize na optika, at low-noise na pagproseso ng signal ng analog upang makita ang pulse oximetry at mga signal ng rate ng puso.
Nagpapatakbo ang MAX30100 mula sa 1.8V at 3.3V na mga power supply at maaaring mapagana sa pamamagitan ng software na may kapabayaan na kasalukuyang standby, na pinapayagan ang power supply na manatiling konektado sa lahat ng oras.
Hakbang 4: Mga Aplikasyon
● Masusuot na Mga Device
● Mga Device sa Fitness Assistant
● Mga Device sa Pagmamanman ng Medikal
Hakbang 5: Mga Pakinabang at Tampok
1, Kumpletuhin ang Pulse Oximeter at Heart-Rate SensorSolution na Pinasimple ang Disenyo
- Pinagsamang LEDs, Photo Sensor, at mataas na Pagganap Analog Front -End
- Maliliit na 5.6mm x 2.8mm x 1.2mm 14-Pin OpticallyEnhanced System-in-Package
2, Ang Operasyong Ultra-Mababang-Kapangyarihan ay Nagdaragdag ng Buhay ng Baterya para sa Masusuot na Mga Device
- Programmable Sample Rate at LED Kasalukuyang para sa Power Savings
- Kasalukuyang Ultra-Mababang Shutdown (0.7µA, uri)
3, Ang Advanced na Pag-andar ay nagpapabuti sa Pagganap ng Pagsukat
- Nagbibigay ang Mataas na SNR ng Matatag na Motion Artifact Resilience
- Pinagsama-sama na Pagkansela ng Banayad na Ambient
- Mataas na Kakayahang Rate ng Sample
- Mabilis na Kakayahang Output ng Data
Hakbang 6: Prinsipyo sa Pagtuklas
Pindutin lamang ang iyong daliri laban sa sensor upang tantyahin ang saturation ng pulso oxygen (SpO2) at pulso (katumbas ng tibok ng puso).
Ang pulse oximeter (oximeter) ay isang mini-spectrometer na GINAMIT ang mga prinsipyo ng iba't ibang spasyo ng pagsipsip ng red cell upang pag-aralan ang saturation ng oxygen ng dugo. Ang real-time at mabilis na pamamaraan ng pagsukat na ito ay malawak ding ginagamit sa maraming mga sanggunian sa klinikal. Hindi ko masyadong ipakikilala ang MAX30100, dahil ang mga materyal na ito ay magagamit sa Internet. Ang mga interesadong kaibigan ay maaaring maghanap ng impormasyon ng module ng pagsubok ng rate ng puso na ito sa Internet, at magkaroon ng mas malalim na pag-unawa sa prinsipyo ng pagtuklas nito.
Hakbang 7: BATO STVI070WT-01
Panimula sa nagpapakita
Sa proyektong ito, gagamitin ko ang STONE STVI070WT-01 upang ipakita ang rate ng rate ng puso at dugo ng oxygen. Ang driver chip ay isinama sa loob ng display screen, at mayroong software na gagamitin ng mga gumagamit. Ang mga gumagamit ay kailangan lamang magdagdag ng mga pindutan, mga kahon ng teksto at iba pang lohika sa pamamagitan ng mga dinisenyong larawan ng UI, at pagkatapos ay bumuo ng mga file ng pagsasaayos at i-download ang mga ito sa display screen upang tumakbo. Ang pagpapakita ng STVI070WT-01 ay nakikipag-usap sa MCU sa pamamagitan ng signal ng uart-rs232, na nangangahulugang kailangan naming magdagdag ng isang MAX3232 chip upang mai-convert ang signal ng RS232 sa signal ng TTL, upang maaari kaming makipag-usap sa Arduino MCU.
Hakbang 8: Kung Hindi ka Sigurado Kung Paano Gumamit ng MAX3232, Mangyaring Sumangguni sa Mga Sumusunod na Larawan:
Kung sa tingin mo ay masyadong mahirap ang antas ng conversion, maaari kang pumili ng iba pang mga uri ng tagapakita ng BATO, na ang ilan ay maaaring direktang mag-output ng signal ng uart-ttl.
Ang opisyal na website ay may detalyadong impormasyon at pagpapakilala:
Hakbang 9: Kung Kailangan mo ng Mga Video Tutorial at Tutorial na Gagamitin, Maaari mo rin itong Makita sa Opisyal na Website
Hakbang 10: Mga Hakbang sa Pag-unlad
Tatlong hakbang ng pag-unlad ng display ng BATO:
- Idisenyo ang display lohika at pindutan ng lohika gamit ang STONE TOOL software, at i-download ang file ng disenyo sa display module.
- Nakikipag-usap ang MCU sa module ng pagpapakita ng STONE LCD sa pamamagitan ng serial port.
- Gamit ang data na nakuha sa hakbang 2, ang MCU ay gumagawa ng iba pang mga pagkilos.
Hakbang 11: Pag-install ng BATO TOOL Software
I-download ang pinakabagong bersyon ng STONE TOOL software (kasalukuyang TOOL2019) mula sa website, at i-install ito.
Matapos mai-install ang software, bubuksan ang sumusunod na interface:
I-click ang pindutang "File" sa kaliwang sulok sa itaas upang lumikha ng isang bagong proyekto, na tatalakayin namin sa paglaon.
Hakbang 12: Arduino
Ang Arduino ay isang bukas na mapagkukunan ng electronic prototype platform na madaling gamitin at madaling gamitin. Kabilang dito ang bahagi ng hardware (iba't ibang mga board ng pag-unlad na umaayon sa pagtutukoy ng Arduino) at ang bahagi ng software (Arduino IDE at mga kaugnay na kit ng pag-unlad).
Ang bahagi ng hardware (o development board) ay binubuo ng isang microcontroller (MCU), Flash memory (Flash), at isang hanay ng mga unibersal na input / output interface (GPIO), na maaari mong maiisip bilang isang microcomputer motherboard. Ang bahagi ng software ay pangunahing binubuo ng Arduino IDE sa PC, kaugnay na board-level support package (BSP) at mayaman na library ng function ng third-party. Sa Arduino IDE, madali mong mai-download ang BSP na nauugnay sa iyong development board at mga aklatan na kailangan mo upang isulat ang iyong mga programa. Ang Arduino ay isang bukas na platform ng mapagkukunan. Sa ngayon, maraming mga modelo at maraming nagmula sa mga kontrol, kabilang ang Arduino Uno, Arduino Nano, ArduinoYun at iba pa. Bilang karagdagan, ang Arduino IDE ngayon ay hindi lamang sumusuporta sa mga board ng development series ng Arduino, ngunit nagdaragdag din ng suporta para sa mga tanyag na board ng pag-unlad tulad ng bilang Intel Galileo at NodeMCU sa pamamagitan ng pagpapakilala sa BSP.
Nararamdaman ng Arduino ang kapaligiran sa pamamagitan ng iba't ibang mga sensor, pagkontrol sa mga ilaw, motor at iba pang mga aparato upang pakainin muli at maimpluwensyahan ang kapaligiran. Ang microcontroller sa board ay maaaring mai-program sa isang wika ng programa ng Arduino, naipon sa mga binary, at sinunog sa microcontroller. para sa Arduino ay ipinatupad sa wika ng programa ng Arduino (batay sa Mga Kable) at sa kapaligiran ng pag-unlad ng Arduino (batay sa Pagproseso). Ang mga proyekto na nakabase sa Arduino ay maaaring maglaman lamang ng Arduino, pati na rin ang Arduino at iba pang software na tumatakbo sa PC, at nakikipag-usap sila sa bawat isa iba pa (tulad ng Flash, Processing, MaxMSP).
Hakbang 13: Kapaligiran sa Pag-unlad
Ang kapaligiran sa pag-unlad ng Arduino ay ang Arduino IDE, na maaaring ma-download mula sa Internet.
Mag-log in sa opisyal na website ng Arduino at i-download ang software https://www.arduino.cc/en/Main/Software?setlang=c… Matapos mai-install ang Arduino IDE, lilitaw ang sumusunod na interface kapag binuksan mo ang software:
Lumilikha ang Arduino IDE ng dalawang pag-andar bilang default: ang pag-andar ng pag-setup at pag-andar ng loop. Maraming mga pagpapakilala ng Arduino sa Internet. Kung hindi mo naiintindihan ang isang bagay, maaari kang pumunta sa Internet upang hanapin ito.
Hakbang 14: Proseso ng Pagpapatupad ng Project ng Arduino LCD
koneksyon sa hardware
Upang matiyak na maayos ang susunod na hakbang sa pagsulat ng code, dapat muna nating matukoy ang pagiging maaasahan ng koneksyon sa hardware.
Apat na piraso lamang ng hardware ang ginamit sa proyektong ito:
1. Arduino Mini pro development board
2. screen ng display ng STONE STVI070WT-01 tft-lcd
3. MAX30100 rate ng puso at sensor ng oxygen ng dugo
4. MAX3232 (rs232-> TTL) Ang Arduino Mini Pro development board at STVI070WT-01 TFT-LCD display screen ay konektado sa pamamagitan ng UART, na nangangailangan ng antas ng conversion sa pamamagitan ng MAX3232, at pagkatapos ang Arduino Mini Pro development board at MAX30100 module ay konektado sa pamamagitan ng IIC interface. Matapos mag-isip nang malinaw, maaari nating iguhit ang sumusunod na larawan ng mga kable:
Hakbang 15:
Tiyaking walang mga error sa koneksyon sa hardware at magpatuloy sa susunod na hakbang.
Hakbang 16: TFT LCD User Interface Design
Una sa lahat, kailangan naming mag-disenyo ng isang imaheng ipinapakita sa UI, na maaaring idisenyo ng PhotoShop o iba pang mga tool sa disenyo ng imahe. Matapos idisenyo ang imaheng ipinapakita ng UI, i-save ang imahe sa format na JPG.
Buksan ang software na STONE TOOL2019 at lumikha ng isang bagong proyekto:
Hakbang 17: Alisin ang Larawan Na Na-load ng Default sa Bagong Proyekto, at Idagdag ang Larawan ng UI Na Dinisenyo Namin
Hakbang 18: Idagdag ang Component sa Pagpapakita ng Teksto
Idagdag ang bahagi ng display ng teksto, idisenyo ang display digit at decimal point, kunin ang lokasyon ng imbakan ng sangkap ng pagpapakita ng teksto sa displayer.
Ang epekto ay ang mga sumusunod:
Hakbang 19:
Address ng bahagi ng display ng teksto:
- Koneksyon sta: 0x0008
- Rate ng puso: 0x0001
Oxygen sa dugo: 0x0005 Ang pangunahing nilalaman ng interface ng UI ay ang mga sumusunod:
- Katayuan ng koneksyon
- Pagpapakita ng rate ng puso
- Nagpakita ang oxygen ng dugo
Hakbang 20: Bumuo ng Configuration File
Kapag kumpleto ang disenyo ng UI, maaaring mabuo at mai-download ang file ng pagsasaayos sa display na STVI070WT-01.
Una, gampanan ang hakbang 1, pagkatapos ay ipasok ang usb flash drive sa computer, at ipapakita ang simbolo ng disk. Pagkatapos i-click ang "I-download sa u-disk" upang I-download ang file ng pagsasaayos sa usb flash drive, at pagkatapos ay ipasok ang usb flash drive sa STVI070WT-01 upang makumpleto ang pag-upgrade.
Hakbang 21: MAX30100
Ang MAX30100 ay nakikipag-usap sa pamamagitan ng IIC. Ang prinsipyo ng pagtatrabaho nito ay ang halaga ng ADC ng rate ng puso ay maaaring makuha sa pamamagitan ng infrared led irradiation. Ang rehistro ng MAX30100 ay maaaring nahahati sa limang kategorya: rehistro ng estado, FIFO, rehistro ng kontrol, rehistro ng temperatura at rehistro ng ID. binabasa ang halaga ng temperatura ng maliit na tilad upang iwasto ang paglihis na dulot ng temperatura. Maaaring basahin ng rehistro ng ID ang numero ng ID ng chip.
Ang MAX30100 ay konektado sa Arduino Mini Pro development board sa pamamagitan ng interface ng komunikasyon ng IIC. Dahil may mga handa nang MAX30100 file ng library sa Arduino IDE, mababasa natin ang rate ng puso at data ng oxygen sa dugo nang hindi pinag-aaralan ang mga rehistro ng MAX30100. Para sa mga interesadong galugarin ang rehistro ng MAX30100, tingnan ang MAX30100 Datasheet.
Hakbang 22: Baguhin ang MAX30100 IIC Pull-up Resistor
Dapat pansinin na ang 4.7k pull-up na paglaban ng IIC pin ng MAX30100 module ay konektado sa 1.8v, na hindi isang problema sa teorya. Gayunpaman, ang antas ng lohika ng komunikasyon ng Arduino IIC pin ay 5V, kaya't hindi ito maaaring makipag-usap sa Arduino nang hindi binabago ang hardware ng MAX30100 module. Posible ang direktang komunikasyon kung ang MCU ay STM32 o ibang 3.3v na antas ng lohika na MCU.
Samakatuwid, ang mga sumusunod na pagbabago ay kailangang gawin:
Alisin ang tatlong 4.7k resistors na minarkahan sa larawan gamit ang isang electric soldering iron. Pagkatapos ay hinangin ang dalawang resistors na 4.7k sa mga pin ng SDA at SCL sa VIN, upang maaari kaming makipag-usap sa Arduino.
Hakbang 23: Arduino
Buksan ang Arduino IDE at hanapin ang mga sumusunod na pindutan:
Hakbang 24: Maghanap para sa "MAX30100" upang Makahanap ng Dalawang Aklatan para sa MAX30100, Pagkatapos I-click ang I-download at I-install
Hakbang 25: Matapos ang Pag-install, Mahahanap Mo ang Demo ng MAX30100 sa LIB Library Folder ng Arduino:
Hakbang 26: I-double click ang File upang Buksan Ito
Hakbang 27: Ang Kumpletong Code Ay Tulad ng Mga Sumusunod:
Ang Demo na ito ay maaaring direktang masubukan. Kung ok ang koneksyon sa hardware, maaari mong i-download ang compilation ng code sa Arduibo development board at makita ang data ng MAX30100 sa serial debugging tool.
Ang kumpletong code ay ang mga sumusunod:
/ * Arduino-MAX30100 oximetry / heart rate integrated sensor library Copyright (C) 2016 OXullo Intersecans Ang program na ito ay libreng software: maaari mo itong ipamahagi muli at / o baguhin ito sa ilalim ng mga tuntunin ng GNU General Public License na na-publish ng Free Software Foundation, alinman sa bersyon 3 ng Lisensya, o (sa iyong pagpipilian) anumang susunod na bersyon. Ang program na ito ay ipinamamahagi sa pag-asa na ito ay magiging kapaki-pakinabang, ngunit WALANG ANUMANG WARRANTY; nang hindi kahit na ang ipinahiwatig na warranty ng MERCHANTABILITY o FITNESS PARA SA ISANG PARTICULAR na LAYUNIN. Tingnan ang Pangkalahatang Lisensya ng Publiko ng GNU para sa higit pang mga detalye. Dapat nakatanggap ka ng isang kopya ng GNU General Public Lisensya kasama ang program na ito. Kung hindi, kita n'yo. * / # isama ang # isama ang "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 // Ang PulseOximeter ay ang mas mataas na antas ng interface sa sensor // nag-aalok ito: // * matalo ang pag-uulat ng detection // * pagkalkula ng rate ng puso // * SpO2 (antas ng oksihenasyon) pagkalkula ng PulseOximeter pox; uint32_t tsLastReport = 0; // Callback (nakarehistro sa ibaba) fired kapag ang isang pulso ay napansin walang bisa saBeatDetected () {Serial.println ("Beat!"); } void setup () {Serial.begin (115200); Serial.print ("Initializing pulse oximeter.."); // Initialize the PulseOximeter instance // Ang mga pagkabigo sa pangkalahatan ay sanhi ng isang hindi wastong mga kable ng I2C, nawawalang power supply // o maling target chip kung (! Pox.begin ()) {Serial.println ("FAILED"); para sa (;;); } iba pa {Serial.println ("SUCCESS"); } // Ang default na kasalukuyang para sa IR LED ay 50mA at maaari itong mabago // sa pamamagitan ng pag-a-kompromiso sa sumusunod na linya. Suriin ang MAX30100_Registers.h para sa lahat ng // magagamit na mga pagpipilian. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Magrehistro ng isang callback para sa beat detection pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Tiyaking tumawag sa pag-update nang mas mabilis hangga't maaari pox.update (); // Asynchronous dump rate ng rate ng puso at oksihenasyon sa serial // Para sa pareho, ang halaga ng 0 ay nangangahulugang "hindi wasto" kung (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Heart rate:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serial.print (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}
Hakbang 28:
Napakadali ng code na ito, naniniwala akong maiintindihan mo ito sa isang sulyap. Kailangan kong sabihin na ang modular programming ng Arduino ay napaka-maginhawa, at hindi ko na kailangang maunawaan kung paano ipinatupad ang driver code ng Uart at IIC.
Siyempre, ang code sa itaas ay isang opisyal na Demo, at kailangan ko pa ring gumawa ng ilang mga pagbabago upang maipakita ang data sa tagapakita ng STONE.
Hakbang 29: Ipakita ang Data sa STONE Displayer Sa pamamagitan ng Arduino
Una, kailangan naming makuha ang address ng bahagi na nagpapakita ng rate ng rate ng puso at oxygen sa dugo sa tagapakita ng STONE:
Sa aking proyekto, ang address ay ang mga sumusunod: rate ng sangkap ng display ng rate ng puso: 0x0001 Address ng module ng pagpapakita ng oxygen ng dugo: 0x0005 Address ng status ng koneksyon ng sensor: 0x0008 Kung kailangan mong baguhin ang nilalaman ng display sa kaukulang espasyo, maaari mong baguhin ang nilalaman ng display sa pamamagitan ng pagpapadala ng data sa kaukulang address ng display screen sa pamamagitan ng serial port ng Arduino.
Hakbang 30: Ang Binagong Code Ay Tulad ng Mga Sumusunod:
/ * Arduino-MAX30100 oximetry / heart rate integrated sensor library Copyright (C) 2016 OXullo Intersecans Ang program na ito ay libreng software: maaari mo itong ipamahagi muli at / o baguhin ito sa ilalim ng mga tuntunin ng GNU General Public License na na-publish ng Free Software Foundation, alinman sa bersyon 3 ng Lisensya, o (sa iyong pagpipilian) anumang susunod na bersyon. Ang program na ito ay ipinamamahagi sa pag-asa na ito ay magiging kapaki-pakinabang, ngunit WALANG ANUMANG WARRANTY; nang hindi kahit na ang ipinahiwatig na warranty ng MERCHANTABILITY o FITNESS PARA SA ISANG PARTICULAR na LAYUNIN. Tingnan ang Pangkalahatang Lisensya ng Publiko ng GNU para sa higit pang mga detalye. Dapat nakatanggap ka ng isang kopya ng GNU General Public Lisensya kasama ang program na ito. Kung hindi, kita n'yo. * / # isama ang # isama ang "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 #define Heart_dis_addr 0x01 #define Sop2_dis_addr 0x05 #define connect_sta_addr 0x08 unsigned char heart_rate_send [8] = 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x 0x00}; unsigned char Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; unsigned char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter ay ang mas mataas na antas ng interface sa sensor // nag-aalok ito: // * beat detection reporting // * heart rate calcul // * SpO2 (oxidation level) pagkalkula PulseOximeter pox; uint32_t tsLastReport = 0; // Callback (nakarehistro sa ibaba) fired kapag ang isang pulso ay napansin walang bisa saBeatDetected () {// Serial.println ("Beat!"); } void setup () {Serial.begin (115200); // Serial.print ("Initializing pulse oximeter.."); // Initialize the PulseOximeter instance // Ang mga pagkabigo sa pangkalahatan ay sanhi ng isang hindi wastong mga kable ng I2C, nawawalang supply ng kuryente // o maling target chip kung (! Pox.begin ()) {// Serial.println ("FAILED"); // connect_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); para sa (;;); } iba pa {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("TAGUMPAY"); } // Ang default na kasalukuyang para sa IR LED ay 50mA at maaari itong mabago // sa pamamagitan ng pag-a-kompromiso sa sumusunod na linya. Suriin ang MAX30100_Registers.h para sa lahat ng // magagamit na mga pagpipilian.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // Magrehistro ng isang callback para sa beat detection pox.setOnBeatDetectedCallback (onBeatDetected); } void loop () {// Tiyaking tumawag sa pag-update nang mas mabilis hangga't maaari pox.update (); // Asynchronous dump rate ng rate ng puso at oksihenasyon sa serial // Para sa pareho, ang halaga ng 0 ay nangangahulugang "hindi wasto" kung (millis () - tsLastReport> REPORTING_PERIOD_MS) {// Serial.print ("Heart rate:"); // Serial.print (pox.getHeartRate ()); // Serial.print ("bpm / SpO2:"); // Serial.print (pox.getSpO2 ()); // Serial.println ("%"); heart_rate_send [7] = (uint32_t) pox.getHeartRate (); Serial.write (heart_rate_send, 8); Sop2_send [7] = pox.getSpO2 (); Serial.write (Sop2_send, 8); tsLastReport = millis (); }}
Hakbang 31: Ipakita ang Rate ng Puso sa LCD Gamit ang Arduino
Compile ang code, i-download ito sa Arduino development board, at handa ka na upang simulan ang pagsubok.
Maaari nating makita na kapag iniiwan ng mga daliri ang MAX30100, ipinapakita ang rate ng puso at oxygen ng dugo 0. Ilagay ang iyong daliri sa kolektor ng MAX30100 upang makita ang antas ng rate ng iyong puso at mga oxygen sa dugo sa real-time.
Makikita ang epekto sa sumusunod na larawan: