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 fi folosit pentru a semnala începerea măsurării pulsului. După terminarea procesului se va putea începe o nouă acțiune de măsurare prin apăsarea celui de-al doilea buton care va duce dispozitivul în starea de început.
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 albastru. 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
Autodesk EAGLE
Implementare
Dispozitivul creat poate avea la un moment dat una dintre următoarele stări:
ENABLE → dispozitivul este pornit și va reda un mesaj de început;
WAIT → se așteaptă apăsarea butonului de start de către utilizator;
MEASURE → dispozitivul începe măsurarea pulsului și îl afișează pe LCD;
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;
Rezultate obținute
Concluzii
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