Mundarija:

Toshli LCD displeyda yurak tezligini qanday ko'rsatish mumkin: 31 qadam
Toshli LCD displeyda yurak tezligini qanday ko'rsatish mumkin: 31 qadam

Video: Toshli LCD displeyda yurak tezligini qanday ko'rsatish mumkin: 31 qadam

Video: Toshli LCD displeyda yurak tezligini qanday ko'rsatish mumkin: 31 qadam
Video: Умные часы GOKOO S11: что нужно знать // Обзор из реальной жизни 2024, Dekabr
Anonim
Tosh bilan LCD displeyda yurak urish tezligini qanday ko'rsatish mumkin
Tosh bilan LCD displeyda yurak urish tezligini qanday ko'rsatish mumkin

qisqacha kirish

Bir muncha vaqt oldin, men onlayn xarid qilishda MAX30100 yurak urish tezligi sensori modulini topdim. Ushbu modul foydalanuvchilarning kislorod va yurak urish tezligi haqidagi ma'lumotlarni to'plashi mumkin, bu ham ishlatish uchun qulay va qulaydir. Ma'lumotlarga ko'ra, men Arduino kutubxona fayllarida MAX30100 kutubxonalari borligini aniqladim. Ya'ni, agar men Arduino va MAX30100 o'rtasidagi aloqadan foydalansam, haydovchi fayllarini qayta yozmasdan Arduino kutubxonasi fayllariga to'g'ridan -to'g'ri qo'ng'iroq qilishim mumkin. Bu yaxshi narsa, shuning uchun men MAX30100 modulini sotib oldim.

1 -qadam: MAX30100 ning yurak urishi va kislorod yig'ish funktsiyasini tekshirish uchun Arduino -dan foydalanishga qaror qildim

Men MAX30100 ning yurak urishi va kislorod yig'ish funktsiyasini tekshirish uchun Arduino -dan foydalanishga qaror qildim
Men MAX30100 ning yurak urishi va kislorod yig'ish funktsiyasini tekshirish uchun Arduino -dan foydalanishga qaror qildim

Eslatma: bu modul sukut bo'yicha faqat 3,3 V darajali MCU aloqasi bilan ta'minlangan, chunki u IIC pinidan foydalanishda 4,7 K dan 1,8 V gacha qarshilikka ega, shuning uchun Arduino bilan aloqa o'rnatmoqchi bo'lsangiz, sukut bo'yicha Arduino bilan aloqa yo'q. va VIN piniga ulangan ikkita 4,7 K IIC pinli tortish qarshiligiga ehtiyoj bor, bu ma'lumotlar bo'limning orqa qismida taqdim etiladi.

2 -qadam: Funktsional topshiriqlar

Loyihani boshlashdan oldin men ba'zi oddiy xususiyatlar haqida o'yladim:

  • Yurak urishi va qon kislorodining ma'lumotlari to'plangan
  • Yurak urishi va kislorod haqidagi ma'lumotlar LCD displey orqali ko'rsatiladi

Bu faqat ikkita xususiyat, lekin agar biz buni amalga oshirmoqchi bo'lsak, biz ko'proq o'ylashimiz kerak:

  • Qaysi master MCU ishlatiladi?
  • Qanday LCD displeyi?

Yuqorida aytib o'tganimizdek, biz MCU uchun Arduino -dan foydalanamiz, lekin bu Arduino LCD displeyli loyihasi, shuning uchun biz tegishli LCD displeyli modulni tanlashimiz kerak. Menda bu erda STONE STVI070WT-01 displeyi bor, lekin agar Arduino u bilan aloqa o'rnatishi kerak bo'lsa, darajadagi konvertatsiya qilish uchun MAX3232 kerak. Keyin asosiy elektron materiallar quyidagicha aniqlanadi:

1. Arduino Mini Pro ishlab chiqish taxtasi

2. MAX30100 yurak urish tezligi va qon kislorod sensori moduli

3. STONE STVI070WT-01 LCD seriyali port displey moduli

4. MAX3232 moduli

3 -qadam: Uskuna bilan tanishish

MAX30100

MAX30100 - bu impuls oksimetriyasi va yurak urish tezligi monitorining sensori. U ikkita LEDni, fotodetektorni, optimallashtirilgan optikani va past shovqinli analog signallarni qayta ishlashni impuls oksimetriya va yurak urish tezligini aniqlash uchun birlashtiradi.

MAX30100 1,8V va 3,3V quvvat manbalaridan ishlaydi va kutish oqimi ahamiyatsiz bo'lgan dasturiy ta'minot orqali o'chirilishi mumkin, bu esa quvvat manbai doimo uzluksiz qolishiga imkon beradi.

4 -qadam: ilovalar

● taqiladigan qurilmalar

● Fitness Assistant qurilmalari

● Tibbiy kuzatuv asboblari

5 -qadam: afzalliklari va xususiyatlari

1, to'liq puls oksimetr va yurak urish tezligi sensori dizaynni soddalashtiradi

  • O'rnatilgan LEDlar, fotosurat sensori va yuqori samarali analog old qismi -oxiri
  • Kichkina 5,6 mm x 2,8 mm x 1,2 mm 14-pinli optik jihatdan takomillashtirilgan tizim to'plami

2, Ultra-past quvvatli operatsiya kiyiladigan qurilmalar uchun batareyaning ishlash muddatini oshiradi

  • Quvvatni tejash uchun dasturlashtiriladigan namuna tezligi va LED oqimi
  • Ultra past o'chirish oqimi (0,7 mkA, tip)

3, ilg'or funksionallik o'lchov ishini yaxshilaydi

  • Yuqori SNR kuchli harakat artefaktiga chidamlilikni ta'minlaydi
  • Birlashtirilgan muhit nurini bekor qilish
  • Namuna olishning yuqori qobiliyati
  • Ma'lumotni tez chiqarish imkoniyati

6 -qadam: aniqlash printsipi

Aniqlash printsipi
Aniqlash printsipi

Puls kislorodining to'yinganligini (SpO2) va pulsni (yurak urishiga teng) baholash uchun barmog'ingizni sensorga bosishingiz kifoya.

Puls oksimetr (oksimetr)-bu qonning kislorod bilan to'yinganligini tahlil qilish uchun turli xil qizil hujayralarni yutish spektrlari tamoyillaridan foydalanadigan mini-spektrometr. Bu real vaqtda va tezkor o'lchash usuli ko'plab klinik ma'lumotnomalarda ham keng qo'llaniladi. Men MAX30100 ni juda ko'p tanishtirmayman, chunki bu materiallar Internetda mavjud. Qiziqqan do'stlar ushbu yurak urish tezligi test moduli ma'lumotlarini Internetda qidirishlari va uni aniqlash tamoyilini chuqurroq tushunishlari mumkin.

7-qadam: STONE STVI070WT-01

Tosh STVI070WT-01
Tosh STVI070WT-01

Displey bilan tanishish

Ushbu loyihada men STONE STVI070WT-01 yordamida yurak urish tezligi va qon kislorod ma'lumotlarini ko'rsataman. Haydovchi chipi displey ekraniga o'rnatilgan bo'lib, foydalanuvchilar uchun dasturiy ta'minot mavjud. Foydalanuvchilar faqat tugmalar, matn qutilari va boshqa mantiqlarni UI rasmlari orqali qo'shishlari, so'ngra konfiguratsiya fayllarini yaratishi va ishga tushirish uchun ularni displey ekraniga yuklashlari kerak. STVI070WT-01 displeyi MCU bilan uart-rs232 signali orqali aloqa o'rnatadi, ya'ni RS232 signalini TTL signaliga aylantirish uchun MAX3232 chipini qo'shishimiz kerak, shunda biz Arduino MCU bilan aloqa qila olamiz.

8 -qadam: Agar siz MAX3232 -dan qanday foydalanishni bilmasangiz, quyidagi rasmlarga qarang

Agar siz MAX3232 -dan qanday foydalanishni aniq bilmasangiz, quyidagi rasmlarga qarang
Agar siz MAX3232 -dan qanday foydalanishni aniq bilmasangiz, quyidagi rasmlarga qarang

Agar siz darajadagi konvertatsiya juda qiyin deb hisoblasangiz, siz STONE displeylarining boshqa turlarini tanlashingiz mumkin, ularning ba'zilari uart-ttl signalini to'g'ridan-to'g'ri chiqarishi mumkin.

Rasmiy veb -saytda batafsil ma'lumot va kirish bor:

9 -qadam: Agar sizga video darsliklar va qo'llanmalar kerak bo'lsa, uni rasmiy veb -saytda ham topishingiz mumkin

Agar sizga video darsliklar va qo'llanmalar kerak bo'lsa, uni rasmiy veb -saytdan ham topishingiz mumkin
Agar sizga video darsliklar va qo'llanmalar kerak bo'lsa, uni rasmiy veb -saytdan ham topishingiz mumkin

10 -qadam: Rivojlanish bosqichlari

STONE displey ekranini ishlab chiqishning uchta bosqichi:

  • STONE TOOL dasturi yordamida displey mantig'i va tugma mantig'ini loyihalashtiring va dizayn faylini displey moduliga yuklab oling.
  • MCU STONE LCD displey moduli bilan ketma -ket port orqali aloqa o'rnatadi.
  • 2 -bosqichda olingan ma'lumotlar yordamida MCU boshqa harakatlarni bajaradi.

11 -qadam: STONE TOOL dasturiy ta'minotini o'rnatish

STONE TOOL dasturiy ta'minotini o'rnatish
STONE TOOL dasturiy ta'minotini o'rnatish

STONE TOOL dasturining so'nggi versiyasini (hozirgi TOOL2019) veb -saytidan yuklab oling va o'rnating.

Dastur o'rnatilgandan so'ng quyidagi interfeys ochiladi:

Yangi loyihani yaratish uchun yuqori chap burchakdagi "Fayl" tugmasini bosing, biz bu haqda keyinroq muhokama qilamiz.

12 -qadam: Arduino

Arduino - bu ochiq manbali elektron prototipli platforma, uni ishlatish oson va ishlatish oson. U apparat qismini (Arduino spetsifikatsiyasiga mos keladigan turli xil ishlab chiqarish platalari) va dasturiy ta'minot qismini (Arduino IDE va unga tegishli ishlab chiqarish to'plamlarini) o'z ichiga oladi.

Uskuna qismi (yoki ishlab chiqish platasi) mikrokontroller (MCU), Flash xotira (Flash) va mikrokompyuterli anakart deb o'ylashingiz mumkin bo'lgan universal kirish/chiqish interfeyslari to'plamidan (GPIO) iborat. Dasturiy ta'minot qismi asosan kompyuterda Arduino IDE, tegishli darajadagi qo'llab-quvvatlash to'plami (BSP) va boy uchinchi tomon kutubxonasidan iborat bo'lib, Arduino IDE yordamida siz ishlab chiqish paneli va kerakli kutubxonalar bilan bog'liq BSPni osongina yuklab olishingiz mumkin. dasturlaringizni yozish uchun. Arduino - bu ochiq manbali platforma. Hozircha Arduino Uno, Arduino Nano, ArduinoYun va shu kabilarni o'z ichiga olgan ko'plab modellar va ko'plab ishlab chiqaruvchilar bor edi, bundan tashqari, Arduino IDE endi nafaqat Arduino seriyasini ishlab chiqish platalarini qo'llab -quvvatlabgina qolmay, balki ommabop ishlab chiqarish platalarini qo'llab -quvvatlaydi. BSP -ni joriy qilish orqali Intel Galileo va NodeMCU sifatida.

Arduino atrof -muhitni oziqlantirish va ta'sir qilish uchun turli xil sensorlar, chiroqlar, dvigatellar va boshqa qurilmalar orqali atrof -muhitni sezadi, bortdagi mikrokontroller Arduino dasturlash tili bilan dasturlashtirilishi, ikkiliklarga to'planishi va mikrokontrolderga yozilishi mumkin. chunki Arduino Arduino dasturlash tili (simlarga asoslangan) va Arduino ishlab chiqish muhiti (ishlov berish asosida) bilan amalga oshiriladi. Arduino-ga asoslangan loyihalarda faqat Arduino, shuningdek kompyuterda ishlaydigan Arduino va boshqa dasturlar bo'lishi mumkin. boshqa (Flash, Processing, MaxMSP kabi).

13 -qadam: Rivojlanish muhiti

Rivojlanish muhiti
Rivojlanish muhiti

Arduino ishlab chiqish muhiti Arduino IDE bo'lib, uni Internetdan yuklab olish mumkin.

Arduino rasmiy veb -saytiga kiring va dasturni yuklab oling https://www.arduino.cc/en/Main/Software?setlang=c… Arduino IDE -ni o'rnatgandan so'ng, dasturni ochganingizda quyidagi interfeys paydo bo'ladi:

Arduino IDE sukut bo'yicha ikkita funktsiyani yaratadi: sozlash funktsiyasi va pastadir funktsiyasi Internetda Arduino -ning ko'plab tanishuvlari mavjud. Agar biror narsani tushunmasangiz, uni topish uchun Internetga kirishingiz mumkin.

14 -qadam: Arduino LCD loyihasini amalga oshirish jarayoni

Arduino LCD loyihasini amalga oshirish jarayoni
Arduino LCD loyihasini amalga oshirish jarayoni

apparat aloqasi

Kodni yozishning keyingi bosqichi muammosiz o'tishini ta'minlash uchun biz birinchi navbatda apparat ulanishining ishonchliligini aniqlashimiz kerak.

Loyihada faqat to'rtta apparat ishlatilgan:

1. Arduino Mini pro ishlab chiqish taxtasi

2. STONE STVI070WT-01 tft-lcd displeyli ekran

3. MAX30100 yurak urishi va qon kislorod sensori

4. MAX3232 (rs232-> TTL) Arduino Mini Pro ishlab chiqish taxtasi va STVI070WT-01 TFT-LCD displey ekrani UART orqali ulanadi, bu MAX3232 orqali darajali konvertatsiyani talab qiladi, so'ngra Arduino Mini Pro ishlab chiqish platasi va MAX30100 moduli orqali ulanadi. IIC interfeysi. Aniq o'ylab bo'lgach, biz quyidagi simli rasmni chizishimiz mumkin:

15 -qadam:

Rasm
Rasm

Uskuna ulanishida xatolar yo'qligiga ishonch hosil qiling va keyingi bosqichga o'ting.

16 -qadam: TFT LCD foydalanuvchi interfeysi dizayni

TFT LCD foydalanuvchi interfeysi dizayni
TFT LCD foydalanuvchi interfeysi dizayni

Birinchidan, biz PhotoShop yoki boshqa tasvirni yaratish vositalari yordamida loyihalashtiriladigan UI displeyli tasvirni loyihalashimiz kerak. UI displey tasvirini yaratgandan so'ng, tasvirni-j.webp

STONE TOOL2019 dasturini oching va yangi loyiha yarating:

17 -qadam: Yangi loyihada sukut bo'yicha yuklangan rasmni olib tashlang va biz yaratgan foydalanuvchi interfeysi tasvirini qo'shing

Yangi loyihada sukut bo'yicha yuklangan rasmni olib tashlang va biz yaratgan foydalanuvchi interfeysi tasvirini qo'shing
Yangi loyihada sukut bo'yicha yuklangan rasmni olib tashlang va biz yaratgan foydalanuvchi interfeysi tasvirini qo'shing

18 -qadam: Matnni ko'rsatish komponentini qo'shing

Matnni ko'rsatish komponentini qo'shing
Matnni ko'rsatish komponentini qo'shing

Matnli displey komponentasini qo'shing, displeyning raqamli va kasrli nuqtasini yarating, displeyda matnni ko'rsatish komponentining saqlash joyini oling.

Ta'siri quyidagicha:

19 -qadam:

Matnni ko'rsatish komponentining manzili:

  • Ulanish stantsiyasi: 0x0008
  • Yurak urishi: 0x0001

Qon kislorodi: 0x0005 UI interfeysining asosiy tarkibi quyidagicha:

  • Ulanish holati
  • Yurak urish tezligi ko'rsatkichi
  • Qon kislorodini ko'rsatdi

20 -qadam: Konfiguratsiya faylini yarating

Konfiguratsiya faylini yarating
Konfiguratsiya faylini yarating

UI dizayni tugallangach, konfiguratsiya faylini STVI070WT-01 displeyiga yaratish va yuklab olish mumkin.

Birinchidan, 1 -qadamni bajaring, keyin USB flesh -diskini kompyuterga joylashtiring va disk belgisi paydo bo'ladi. Keyin konfiguratsiya faylini USB flesh haydovchiga yuklash uchun "U-diskka yuklash" tugmasini bosing va yangilanishni yakunlash uchun USB flesh-diskini STVI070WT-01 ga joylashtiring.

21 -qadam: MAX30100

MAX30100
MAX30100

MAX30100 IIC orqali muloqot qiladi, uning ishlash printsipi shundaki, yurak urish tezligining ADC qiymatini infraqizil nurli nurlanish orqali olish mumkin, MAX30100 registrini beshta toifaga bo'lish mumkin: davlat reestri, FIFO, nazorat registri, harorat registri va identifikator registri. harorat ta'siridan chetga chiqishni to'g'rilash uchun chipning harorat qiymatini o'qiydi. ID registri chipning identifikator raqamini o'qishi mumkin.

MAX30100 IIC aloqa interfeysi orqali Arduino Mini Pro ishlab chiqish platasiga ulangan. Tayyor MAX30100 kutubxona fayllari Arduino IDEda bo'lgani uchun, biz MAX30100 registrlarini o'rganmasdan yurak urish tezligi va kislorod ma'lumotlarini o'qishimiz mumkin.

22-qadam: MAX30100 IIC tortish qarshiligini o'zgartiring

MAX30100 IIC tortish qarshiligini o'zgartiring
MAX30100 IIC tortish qarshiligini o'zgartiring

Ta'kidlash joizki, MAX30100 modulining IIC pinining 4,7k tortish qarshiligi 1,8v ga ulangan, bu nazariy jihatdan muammo emas. Biroq, Arduino IIC pinining aloqa mantiqiy darajasi 5V, shuning uchun MAX30100 modulining apparatini o'zgartirmasdan Arduino bilan aloqa qila olmaydi, agar MCU STM32 yoki boshqa 3.3v mantiqiy darajali MCU bo'lsa, to'g'ridan -to'g'ri aloqa mumkin.

Shuning uchun quyidagi o'zgarishlarni amalga oshirish kerak:

Elektr lehimli temir bilan rasmda ko'rsatilgan 4,7k rezistorni olib tashlang, so'ngra Arduino bilan bog'lanish uchun SDA va SCL pinlarida 4,7k ikkita rezistorni payvandlang.

23 -qadam: Arduino

Arduino
Arduino

Arduino IDE -ni oching va quyidagi tugmalarni toping:

24 -qadam: MAX30100 uchun ikkita kutubxona topish uchun "MAX30100" ni qidiring, so'ng Yuklab olish va O'rnatish -ni bosing

Qidirish
Qidirish

25 -qadam: O'rnatishdan so'ng, MAX30100 demosini Arduino LIB kutubxonasi papkasida topishingiz mumkin:

O'rnatishdan so'ng, MAX30100 demosini Arduino LIB kutubxonasi papkasida topishingiz mumkin
O'rnatishdan so'ng, MAX30100 demosini Arduino LIB kutubxonasi papkasida topishingiz mumkin

26-qadam: Faylni ochish uchun uni ikki marta bosing

Faylni ochish uchun uni ikki marta bosing
Faylni ochish uchun uni ikki marta bosing

27 -qadam: To'liq kod quyidagicha:

Bu Demo to'g'ridan -to'g'ri sinovdan o'tkazilishi mumkin. Agar uskuna ulanishi yaxshi bo'lsa, siz Arduibo ishlab chiqish kartasiga kodlar to'plamini yuklab olishingiz va ketma -ket disk raskadrovka vositasida MAX30100 ma'lumotlarini ko'rishingiz mumkin.

To'liq kod quyidagicha:

/* Arduino-MAX30100 oksimetriya /yurak urish tezligi o'rnatilgan sensorlar kutubxonasi Mualliflik huquqi (C) 2016 OXullo Intersecans Bu dastur bepul dastur: siz uni bepul tarqatish fondi tomonidan e'lon qilingan GNU General Public License shartlari asosida qayta tarqatishingiz va /yoki o'zgartirishingiz mumkin., yoki Litsenziyaning 3 -versiyasi, yoki (sizning xohishingiz bo'yicha) keyingi versiyasi. Bu dastur foydali bo'ladi degan umidda tarqatiladi, lekin KAFOLATSIZ; Hatto ma'lum bir maqsad uchun SOTILISh yoki moslik kafolatlanmagan. Qo'shimcha ma'lumot olish uchun GNU General Public License ga qarang. Siz ushbu dastur bilan birga GNU General Public License nusxasini olishingiz kerak edi. Agar yo'q bo'lsa, qarang. */ #include #include "MAX30100_PulseOximeter.h" #REPORTING_PERIOD_MS 1000 ni aniqlang // PulseOximeter - bu sensorning yuqori darajali interfeysi // u taklif qiladi: // * yurak urish tezligini hisoblash // * SpO2 (oksidlanish darajasi)) PulseOksimetr poxini hisoblash; uint32_t tsLastReport = 0; // Qayta qo'ng'iroq (quyida ro'yxatga olingan) puls aniqlanganda ishdan bo'shatilgan onBeatDetected () {Serial.println ("Beat!"); } void setup () {Serial.begin (115200); Serial.print ("Puls oksimetrini ishga tushirish.."); // PulseOximeter misolini ishga tushiring // Nosozliklar odatda noto'g'ri I2C simlari, quvvat manbai yo'qligi yoki noto'g'ri nishon chipi tufayli (! Pox.begin ()) {Serial.println ("FAIL") bo'lsa; uchun(;;); } boshqa {Serial.println ("SUCCESS"); } // IQ LED uchun standart oqim 50mA va uni quyidagi satrga izoh qoldirishsiz o'zgartirish mumkin. MAX30100_Registers.h ni tekshiring // barcha mavjud variantlar. // pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // pox.setOnBeatDetectedCallback (onBeatDetected) ni aniqlash uchun qayta qo'ng'iroqni ro'yxatdan o'tkazing; } void loop () {// iloji boricha tezroq pox.update () yangilanishini chaqirganingizga ishonch hosil qiling; // Asinxron tarzda yurak urish tezligi va oksidlanish darajasini ketma -ket ketkazadi // Ikkalasi uchun 0 qiymati "yaroqsiz" degan ma'noni anglatadi, agar (millis () - tsLastReport> REPORTING_PERIOD_MS) {Serial.print ("Yurak urishi:"); Serial.print (pox.getHeartRate ()); Serial.print ("bpm / SpO2:"); Serial.print (pox.getSpO2 ()); Serial.println ("%"); tsLastReport = millis (); }}

28 -qadam:

Rasm
Rasm

Bu kod juda oddiy, menimcha, siz uni bir qarashda tushunishingiz mumkin. Aytishim kerakki, Arduino -ning modulli dasturlashi juda qulay va Uart va IIC drayveri kodi qanday amalga oshirilganini tushunishning hojati yo'q.

Albatta, yuqoridagi kod rasmiy Demo va men hali ham ma'lumotlarni STONE displeyida ko'rsatish uchun ba'zi o'zgartirishlar kiritishim kerak.

29 -qadam: Arduino orqali STONE displeyida ma'lumotlarni ko'rsatish

Birinchidan, biz STONE displeyida yurak urish tezligi va qon kislorod ma'lumotlarini aks ettiruvchi komponentning manzilini olishimiz kerak:

Mening loyihamda manzil quyidagicha: Yurak urishi tezligini aks ettiruvchi komponent manzili: 0x0001 Qon kislorodli displey modulining manzili: 0x0005 Sensor ulanishi holati manzili: 0x0008 Agar displey tarkibini tegishli maydonda o'zgartirish zarur bo'lsa, siz displey tarkibini o'zgartirishingiz mumkin. ma'lumotlarni Arduino ketma -ket porti orqali displey ekranining tegishli manziliga yuborish orqali.

30 -qadam: O'zgartirilgan kod quyidagicha:

/* Arduino-MAX30100 oksimetriya /yurak urish tezligi o'rnatilgan sensorlar kutubxonasi Mualliflik huquqi (C) 2016 OXullo Intersecans Bu dastur bepul dastur: siz uni bepul tarqatish fondi tomonidan e'lon qilingan GNU General Public License shartlari asosida qayta tarqatishingiz va /yoki o'zgartirishingiz mumkin., yoki Litsenziyaning 3 -versiyasi, yoki (sizning xohishingiz bo'yicha) keyingi versiyasi. Bu dastur foydali bo'ladi degan umidda tarqatilgan, lekin KAFOLATSIZ; Hatto ma'lum bir maqsad uchun SOTILISh yoki moslik kafolatlanmagan. Qo'shimcha ma'lumot olish uchun GNU General Public License ga qarang. Siz ushbu dastur bilan birga GNU General Public License nusxasini olishingiz kerak edi. Agar yo'q bo'lsa, qarang. */ #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 #define Heart_dis_addr 0x01 #define Sop2_dis_addr 0x05 #define connect_sta_addr 0x08, 0xx, 0x8, 0x8, 0x8, 0 0x00}; imzosiz char Sop2_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / Sop2_dis_addr, 0x00, 0x00}; imzosiz char connect_sta_send [8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, / connect_sta_addr, 0x00, 0x00}; // PulseOximeter - bu sensorning yuqori darajali interfeysi // u quyidagilarni taklif qiladi: // * yurak urish tezligini aniqlash hisoboti // * yurak urish tezligini hisoblash // * SpO2 (oksidlanish darajasi) hisobi PulseOximeter pox; uint32_t tsLastReport = 0; // Qayta qo'ng'iroq (quyida ro'yxatga olingan) puls aniqlanganda o'chiriladi void onBeatDetected () {// Serial.println ("Beat!"); } void setup () {Serial.begin (115200); // Serial.print ("Puls oksimetrini ishga tushirish.."); // PulseOximeter misolini ishga tushiring // Nosozliklar odatda noto'g'ri I2C simlari, quvvat manbai yo'qligi yoki noto'g'ri nishon chipi tufayli (! Pox.begin ()) {// Serial.println ("FAIL") bo'lsa; // ulanish_sta_send [7] = 0x00; // Serial.write (connect_sta_send, 8); uchun(;;); } boshqa {connect_sta_send [7] = 0x01; Serial.write (connect_sta_send, 8); // Serial.println ("Muvaffaqiyat"); } // IQ LED uchun standart oqim 50mA va uni quyidagi satrga izoh qoldirishsiz o'zgartirish mumkin. MAX30100_Registers.h ni tekshiring // barcha mavjud variantlar.pox.setIRLedCurrent (MAX30100_LED_CURR_7_6MA); // pox.setOnBeatDetectedCallback (onBeatDetected) ni aniqlash uchun qayta qo'ng'iroqni ro'yxatdan o'tkazing; } void loop () {// iloji boricha tezroq pox.update () yangilanishini chaqirganingizga ishonch hosil qiling; // Asinxron tarzda yurak urish tezligi va oksidlanish darajasini ketma -ket ketkazadi // Ikkalasi uchun ham 0 qiymati "millis () - tsLastReport> REPORTING_PERIOD_MS) {" Serial.print ("Yurak urishi:"); // 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 (); }}

31 -qadam: Arduino yordamida LCD displeyda yurak urish tezligini ko'rsatish

LCD displeyda yurak urish tezligini Arduino yordamida ko'rsatish
LCD displeyda yurak urish tezligini Arduino yordamida ko'rsatish

Kodni kompilyatsiya qiling, Arduino ishlab chiqish kartasiga yuklab oling va siz testni boshlashga tayyormiz.

Biz ko'rishimiz mumkinki, barmoqlar MAX30100dan chiqqanda, yurak urish tezligi va kislorod ko'rsatkichi 0. Barmoqlaringizni MAX30100 kollektoriga qo'ying, yurak urish tezligini va qondagi kislorod darajasini real vaqtda ko'rish uchun.

Ta'sirni quyidagi rasmda ko'rish mumkin:

Tavsiya: