Circuito Monitor de Batimentos Cardíacos

A frequência cardíaca ou ritmo cardíaco é o número de batimentos do coração por unidade de tempo, geralmente expresso em batimentos por minuto ou bpm. A frequência cardíaca pode ser medida manualmente através da leitura da pulsação nos pulsos, pescoço, pernas, etc.

Mas os batimentos do coração também pode ser medida eletronicamente pelo eletrocardiograma ou monitor cardíaco. No caso do eletrocardiograma veja os artigos já publicados como o Eletrocardiograma usando Placa de Som que é um ECG Caseiro e a Máquina de Eletrocardiograma Caseiro.

Este circuito surgiu por acaso, já que segundo o criador o circuito original era para detectar se a água está fluindo por um tubo através da medição da vibração com um sensor piezoelétrico, só que o criador percebeu que o sensor estava lendo os seus batimentos cardíacos quando o sensor era segurado por ele.

Medidor de Batimentos Cardíacos

sensor de vibração
Sensor de vibração

O projeto usa um Arduino e um sensor de vibração que utiliza um piezo comercial como este acima, não deve custar mais de R$15,00. Mas caso queira, você mesmo pode fazer seu sensor, abaixo um circuito eletrônico de sensor de vibração com uma pastilha piezoelétrica.

No circuito R3 é um resistor de 1 MΩ e R2 uma resistência de 250 kΩ, todas de 1/8 Watts. Não esqueça de fazer as modificações para acoplar ao Arduino.

Sensor de vibração usando transdutor Piezoelétrica
Sensor de vibração usando transdutor Piezoelétrica via

O circuito do Medidor de Batimentos Cardíacos usando o sensor piezo é mais simples que o monitor usando Led.

Sensor Piezo no dedo
Sensor Piezo no dedo

Ao definir um limite arbitrário (por exemplo, metade do valor máximo medido), a borda de subida do sinal vai passar o limiar de uma vez por batimento cardíaco, fazendo medi-lo tão simples como medir o tempo entre duas batidas sucessivas.

Para calcular a frequência cardíaca é utilizada a média dos últimos 16 batidas do coração.

Abaixo está o código rápido  que calcula a taxa de frequência cardíaca média ao longo dos últimos 16 batidas :

void setup() {
Serial.begin(57600);
}
void loop() {
int avg = 0;
for(int i=0;i<64;i++){
avg+=analogRead(A2);
}
Serial.println(avg/64,DEC);
delay(5);
}

A ligação é simples basta ligar a saída analógica do sensor em A2 (ou alterar o código) e conectar as linhas do sensor de 5V e GND.

int threshold = 60;
int oldvalue = 0;
int newvalue = 0;
unsigned long oldmillis = 0;
unsigned long newmillis = 0;
int cnt = 0;
int timings[16];
void setup() {
Serial.begin(57600);
}
void loop() {
oldvalue = newvalue;
newvalue = 0;
for(int i=0; i<64; i++){ // Average over 16 measurements
newvalue += analogRead(A2);
}
newvalue = newvalue/64;
// find triggering edge
if(oldvalue=threshold){
oldmillis = newmillis;
newmillis = millis();
// fill in the current time difference in ringbuffer
timings[cnt%16]= (int)(newmillis-oldmillis);
int totalmillis = 0;
// calculate average of the last 16 time differences
for(int i=0;i<16;i++){
totalmillis += timings[i];
}
// calculate heart rate
int heartrate = 60000/(totalmillis/16);
Serial.println(heartrate,DEC);
cnt++;
}
delay(5);
}

Mais informações no site do desenvolvedor.

Nova Eletrônica - Circuitos e projetos Eletrônicos grátis

Deixe um comentário