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