This is an old revision of the document!


Heart Rate Monitor

Introducere

Proiectul constă în construirea unui aparat de măsurare al ritmului cardiac.

  • Valoarea pulsului va fi afișată pe un ecran LCD;
  • Culoarea și intensitatea unui led RGB vor fi variate în funcție de valoarea tensiunii măsurate;
  • Consider că acest dispositiv poate fi util sportivilor în cadrul antrenamentelor pentru a putea aprecia intensitatea exercițiilor;

Descriere generală

Pe ecranul LCD-ului se vor afișa diferite informații în funcție de butonul apăsat. Un buton va reda pe LCD un mesaj de început, iar cu ajutorul celuilalt buton se va începe afișarea pulsului. Datele vor fi preluate cu ajutorul senzorului pentru puls XD-58C atunci cand este atins de degetul utilizatorului. Senzorul foloseste un amplificator optic si un circuit de eliminare a zgomotului. Valoarea citită va fi redată pe ecranul LCD-ului. De asemenea, pe măsură ce este măsurat pulsul va fi redat un sunet conform bătăilor inimii cu ajutorul unui buzzer. Dacă este măsurat un ritm cardiac crescut lumina generată de led-ul RGB va avea o culoare roșie, în cazul unui puls normal va avea o nuanță de verde, iar în cazul unui puls scăzut va avea culoarea galben. Totodată cele trei culori vor fi redate cu intensități diferite pentru a indica cât de scăzut respectiv cât de crescut este ritmul cardiac față de valorile optime.

Hardware Design

Componente

Nume Numar Piese
Arduino UNO 1
Breadboard 1
Ecran LCD I2C 1
Push Buton 2
Senzor puls (XD-58C) 1
Buzzer 1
Rezistente 3
Fire 15

Schema electrică

Software Design

Mediu de dezvoltare

  • Arduino IDE

Librării folosite

  • PulseSensorPlayground.h
  • hd44780ioClass/hd44780_I2Cexp.h
  • Wire.h

Implementare

Dispozitivul creat poate avea la un moment dat una dintre următoarele stări:

  1. ENABLE → dispozitivul este pornit și va reda un mesaj de început;
  2. WAIT → se așteaptă apăsarea butonului de start de către utilizator;
  3. MEASURE → dispozitivul începe măsurarea pulsului și îl afișează pe LCD;
  4. FINISH → pulsul a fost măsurat și se poate reveni la starea de WAIT prin apăsarea butonului de reset;
Funcțiile folosite:
  • lightRGB → funcție ce setează pinii led-ului RGB la niște valori transmise ca parametri;
  • timerInit → inițializează timer-ul 0 la modul CTC, cu un prescaler de 1024;
  • setup → funcția inițializează LCD-ul, senzorul de puls, setează pinii pentru LED-ul RGB, pentru butoane și configurează întreruperile
  • loop → reprezintă funcția principală care descrie logica programului; aici se afișează diferite informații pe LCD ținând cont de starea în care se află dispozitivul la un moment dat; conform datelor citite de la senzor în starea de MEASURE este pornit led-ul RGB a cărui culoare va fi diferită, iar de fiecare dată când va fi recepționată o bătaie a inimii buzzer-ul va semnala acest lucru;
  • ISR(TIMER0_COMPA_vect) → se folosește un counter pentru a trece de la o stare la alta în mod automat dupa un anumit timp;
  • ISR(PCINT2_vect) → implementare întrerupere buton;
  • void count_time() → decrementează variabilele folosite pentru counter-ul utilizat de timer;
  • pin_ISR → întrerupere folosită pentru a trece de la o stare la alta prin resetarea unor variabile la apăsarea unui buton;

Concluzii

  • Proiectul m-a ajutat să aprofundez noțiunile parcurse de-a lungul semestrului la laboratoare într-un mod interactiv. Am învățat că este important să citești datasheet-ul componentelor pentru a fi sigur că piesele sunt compatibile.
  • Mi s-a părut o provocare să realizez acest proiect, dar mi-a făcut plăcere să lucrez la el.=)

Download

Jurnal

  • 20.04.2022: alegere tema proiect
  • 22.04.2022: comandă piese
  • 23.04.2022: creare pagină wiki
  • 20.04.2022: testare individuală componente
  • 23.05.2022: implementare hardware și software
  • 27.05.2022: finalizare pagină wiki

Bibliografie/Resurse

pm/prj2022/imacovei/andreea.traistaru00.1653639505.txt.gz · Last modified: 2022/05/27 11:18 by andreea.traistaru00
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0