Table of Contents

Holter ECG

Introducere

Holterul ECG are scopul de a inregistra activitatea cardiaca de obicei pe o perioada de 24h. Folosind 3 senzori plasati in pe corp conform triunghiului lui Einthoven, Holterul inregistreaza ritmul cardiac in timpul activitatilor de zi cu zi, astfel anumite anormalitati si aritmii pot fi observate. De exemplu:

  • Tahicardia ventriculara nesustinuta
  • Tahicardia ventriculara sustinuta
  • Flutterul atrial
  • Fibrilatii atriale paroxostice

Descriere generală

Pentru acest proiect vor fi folositi 3 senzori care vor capta ritmul cardiac si il vor converti in semnal eletric. Modulul AD8232 filtreaza semnalele bioelectrice venite de la senzori si elimina zgomotul aditional. Semnalul electric va fi afisat pe LCD daca acesta este pornit(caz in care si led-ul verde va lumina, in caz contrar cel rosu va fi aprins). De asemenea valoarea ritmului cardiac v-a fi descrisa de o serie de leduri albe care se vor lumina de la stanga la dreapta in functie de cat de mult creste ritmul cardiac.

Concepte folosite:

  • I2C (LCD)
  • GPIO(In cadrul ledurilor care arata valoarea semnalului cardiac)
  • SPI( in cadrul modulului AD8232)

Schema

Hardware Design

Componente necesare:

  1. Arduino Uno x1
  2. Modul ECG - AD8232 x1
  3. Electrozi ECG x3
  4. Conector electrozi x1
  5. Breadboard x1
  6. Intrerupator x1
  7. Led x5
  8. LCD 1602 cu interfata I2C x1

Schema Schema Schema

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Arduino IDE
  • am folosit librariile LiquidCrystal_I2C si Wire.h
  • in setup am setat ca input pinii 10 si 11 care preiau semnalul de la modului AD8232, am initializat lcd-ul cu 16 coloane si 3 randuri
  • in functia loop astept semnalul de la modului AD8232, in cazul in care primesc un semnal, afisez heart rate-ul pe lcd
  • in functie de cum scade si creste valoarea afisata,luminez unul dintre leduri

#include <LiquidCrystal_I2C.h>
 
#include <Wire.h> 
//I2C pins declaration
LiquidCrystal_I2C lcd(0x27, 16, 2); 
 
void setup() 
{
  Serial.begin(9600);
 
  pinMode(10,INPUT);
  pinMode(11,INPUT);
  pinMode(13, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(12, OUTPUT);
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
  lcd.clear();
}
 
void loop() 
{
    lcd.clear();
    lcd.setCursor(0, 0);
    if((digitalRead(10)==1)||(digitalRead(11)==1)){
 
    }
    else{
      lcd.print(analogRead(A1));
      Serial.println(analogRead(A1));
    }
    if(analogRead(A1) < 200){
      digitalWrite(9, HIGH); 
      digitalWrite(13, LOW);  
      digitalWrite(8, LOW);
      digitalWrite(12, LOW);
      delay(100);              
 
    }
    if(analogRead(A1) > 200){
      if(analogRead(A1) < 300){
      digitalWrite(9, LOW); 
      digitalWrite(13, HIGH);  
      digitalWrite(8, LOW);
      digitalWrite(12, LOW);
      delay(100);
      }
    }
    if(analogRead(A1) > 300){
      if(analogRead(A1) < 450){
      digitalWrite(9, LOW); 
      digitalWrite(13, LOW);  
      digitalWrite(8, HIGH);
      digitalWrite(12, LOW);
      delay(100);
      }
    }
    if(analogRead(A1) > 450){
      digitalWrite(9, LOW); 
      digitalWrite(13, LOW);  
      digitalWrite(8,LOW );
      digitalWrite(12, HIGH);
      delay(100);
    }
   delay(500);
}

Rezultate Obţinute

Graficul EKG obtinut:

Concluzii

Bibliografie/Resurse