Table of Contents

Heart Rate Monitor

Introducere

Proiectul are ca scop construirea unui device care poate masura pulsul. Aceasta actiune va fi semnalata prin aprinderea unor LEDuri si prin emiterea unui sunet de catre buzzer.

Ideea de la care am pornit este aceea ca mi se pare interesant cum printr-un device asa de mic orice persoana poate afla un lucru important legat de sanatatea sa.

Mi se pare util deoarece, prin simpla utilizare, o persoana poate afla daca ritmul cardiac este conform sau neconform, putand lua masuri dupa caz.

Descriere generală

Un LED IR emite lumina inspre un receptor IR.

Atunci cand este pus un deget intre ansamblul format din LED IR si receptor IR, receptorul detecteaza o scadere in intensitatea luminii.

In momentul in care inima pulseaza si sangele ajunge in deget, se ajunge la o scadere si mai mare a intensitatii, care este interpretata drept puls.

Cand un puls este detectat, placuta Arduino transmite un semnal catre LED-urile rosii si buzzer, pentru a-l informa pe utilizator.

Schema bloc:

Hardware Design

Piesele folosite:

  • Arduino UNO
  • LED IR
  • Receptor IR
  • Buzzer
  • 14 LED-uri rosii
  • Rezistori

Software Design

Codul este destinat sa detecteze prezenta si absenta unui obiect intre componentele infrarosu. In functie de nivelul tensiunii masurate pe pinul A0, codul determina daca obiectul este prezent sau absent. Daca obiectul este detectat, se reprezinta un puls prin intermediul LED-urilor si a unui buzzer. Codul monitorizeaza continuu nivelul tensiunii si detecteaza inserarea si extragerea obiectului.

Functia heartbeat() este definita pentru a controla LED-urile si buzzer-ul intr-un anumit model de pulsare.

In functia loop(), se realizeaza citirea valorii tensiunii curente de pe pinul A0 la intervale de timp definite de sampleRate.

Daca valoarea tensiunii curente este mai mica de 500 (indicand detectarea unui obiect între componentele infrarosu), se realizeaza urmatoarele actiuni:

  • Se memoreaza detectarea unui obiect;
  • Intre 200ms si 300ms de la inserarea obiectului, se aduna valorile tensiunii pentru a calcula media intensitatii luminoase;
  • Se verifica daca intensitatea este mai mica de 92% din media intensitatii luminoase, caz in care se activeaza functia heartbeat() pentru a reprezenta pulsul, daca acesta nu a mai fost reprezentat deja;
  • La revenirea la o intensitate mai mare de 92% din media intensitatii luminoase medii, se permite algoritmului sa reprezinte un nou puls la detectarea acestuia.

Daca se revine la o valoare a tensiunii curente mai mare sau egala cu 500 (indicand extragerea obiectului dintre componentele infrarosu), variabilele se reseteaza pentru detectarea unui nou obiect.

Rezultate Obţinute

Acestea sunt poze cu circuitul final:

Concluzii

A fost un proiect plin de surprize. Mi s-a parut destul de dificil sa il fac sa fie oarecum estetic, dar cred ca inima formata din LED-uri compenseaza.

Din punct de vedere al functionalitatii, am intampinat foarte multe dificultati in proiectarea unui sistem de detectare a pulsului pana am ajuns la design-ul curent. In plus, lucrand cu componente infrarosu, a fost mai provocator sa observ cand si daca functioneaza (primele doua emitatoare cumparate nu mergeau, testandu-l pe primul pana a explodat; totusi, al treilea a fost cu noroc).

Download

Sursa: heart_rate_arduino_code.rar

Jurnal

  • Documentatie initiala: 07.05.2023
  • Mici modificari: 25.05.2023
  • Documentatie finala: 29.05.2023

Bibliografie/Resurse

Export to PDF