fbpx
ArduinoNovidade

Como utilizar o sensor de batimento cardíaco / monitor de pulso com Arduino

O sensor de batimento cardíaco / monitor de pulso é um dispositivo plug-and-play para medição da frequência cardíaca e da variabilidade da frequência cardíaca projetado para uso em microcontroladores. Com ele, ficou bem mais simples incorporar os dados de frequência cardíaca em projetos.

Imagem ilustrativa do sensor de batimento cardiaco e monitor de pulso
Figura 1: Sensor de batimento cardiaco e monitor de pulso

O sensor de batimento cardíaco / monitor de pulso é fácil de usar e pode ser aplicado em vários projetos, sendo uma escolha perfeita para estudantes, artistas, atletas, fabricantes e desenvolvedores de jogos e dispositivos móveis que desejam incorporar dados de frequência cardíaca ao vivo em seus projetos.

Assim como o sensor de frequência cardíaca e oxímetro MAX30100, o sensor de batimento cardíaco / monitor de pulso é óptico. Ele possui um LED verde de alta intensidade (~550 nm) e um fotossensor localizados na parte frontal do sensor, com o logotipo de coração, conforme a Figura 2.

Imagem ilustrativa do LED de alta intensidade verde e fotossensor
Figura 2: LED de alta intensidade verde e fotossensor

Para realizar as medições o LED ilumina o dedo, lóbulo da orelha ou qualquer outra área em que a pele não seja muito grossa, e o fotodetector mede a quantidade de luz refletida.

Quando o coração bombeia sangue ocorre um aumento no nível de sangue oxigenado. Por sua vez, quando o coração relaxa o volume de sangue diminui. O sensor mede a frequência cardíaca com base no tempo entre o aumento e diminuição do sangue oxigenado.

A hemoglobina oxigenada é capaz de absorver uma certa quantidade de luz verde. Quanto mais oxigenado estiver o sangue, mais vermelho ele estará e maior será a taxa de absorção de luz. À medida que o sangue é bombeado a cada batimento cardíaco, a quantidade de luz refletida muda, criando uma forma de onda variável na saída do fotossensor.

Imagem ilustrativa do modo de funcionamento do sensor de batimento cardíaco e monitor de pulso
Figura 3: Modo de funcionamento do sensor de batimento cardíaco e monitor de pulso

O sinal de saída do fotossensor é pequeno e ruidoso. Então, para criar um sinal significativamente maior, mais limpo e fácil de detectar pelo microcontrolador, ele passa por uma rede de filtros RC e é amplificado por um amp-OP.

A rede de filtros RC e o amp-OP estão localizados na parte traseira do sensor. Além disso, há também um diodo de proteção reversa para evitar danos caso os cabos de alimentação sejam conectados invertidos.

Imagem ilustrativa da Amp-OP e diodo de proteção do sensor de batimento cardíaco monitor de pulso.
Figura 4: Amp-OP e diodo de proteção do sensor de batimento cardíaco monitor de pulso.

O sensor conta também com três pinos, conforme detalha a Figura 5.

Imagem ilustrativa dos pinos do sensor de batimento cardíaco monitor de pulso.
Figura 5: Pinos do sensor de batimento cardíaco monitor de pulso.

Funções dos pinos:

VCC: Pino de alimentação com tensão entre 3,3V e 5V;

GND: Aterramento do sensor;

Sinal: É a saída do sinal do sensor. Deve ser conectado à entrada analógica de um microcontrolador.

Agora que já conhecemos o sensor de batimento cardíaco / monitor de pulso podemos partir para a prática. Neste tutorial, vamos utilizar o sensor em conjunto com o Arduino para monitorar o batimento cardíaco.

MATERIAIS NECESSÁRIOS

ESQUEMÁTICO DE LIGAÇÃO

Monte o circuito conforme a Figura 6 utilizando o Arduino, o sensor de batimento cardíaco/Monitor de pulso e os jumpers.

Ao montar seu circuito, observe os seguintes pontos:

  • O pino VCC do sensor (+) deve ser alimentado com o 5V do Arduino;
  • O pino GND do sensor (-) deve ser conectado ao pino GND do Arduino;
  • O pino de sinal do sensor deve ser conectado com a entrada analógica A0 do Arduino

ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos a programação do Sketch. A proposta desse projeto é criar um monitor de batimentos cardíacos usando o sensor de batimento cardíaco / monitor de pulso e o Arduino.

Para tal, vamos fazer uso da biblioteca “PulseSensor Playground”. Para instalá-la abra o Gerenciador de Bibliotecas do Arduino IDE pelo caminho: Sketch > Incluir biblioteca > Gerenciar bibliotecas ou pelo atalho Ctrl+Shift+I.

Imagem ilustrativa da biblioteca PulseSensor Playground
Figura 7: Biblioteca PulseSensor Playground

A PulseSensor Playground facilitará a leitura e interpretação dos dados do sensor. A biblioteca inclui vários Sketch exemplos, dentre eles o “GettingStartedProject”, específico para exibir os batimentos e pulsos medidos pelo sensor. Construiremos nosso código com base neste exemplo.

Imagem ilustrativa do exemplo GettingStartedProject
Figura 8: Exemplo GettingStartedProject

Acompanhe os passos a seguir para melhor compreensão da lógica de programação do código feito com base no exemplo “GettingStartedProject”.

1. Definir as portas do Arduino que serão usadas no projeto

Definimos as constantes sensorPin e ledPin para representar as portas A0 e 13 do Arduino, respectivamente.

2. Declarar as variáveis que serão utilizadas

Declaramos a variável LeituraSensor para armazenar o valor lido do sensor de batimento cardíaco / monitor de pulso. A variável pulso será usada para indicar o valor de referência para contar uma batida.

3. Inicializar a comunicação serial e configurar os pinos

Na função setup() inicializamos a comunicação serial e configuramos ledPin como saída.

4. Realizar a leitura analógica do sensor

Iniciamos o loop() realizando a leitura analógica A0 (sensorPin). Para isso, utilizamos a função analogRead(sensorPin) e armazenamos o valor lido na variável LeituraSensor. Em seguida, imprimimos a leitura no monitor serial.

5. Acender o LED quando o valor lido for maior que Pulso

Em nosso projeto, usaremos o LED integrado na porta 13 para acender sempre que a leitura analógica do sensor ultrapassar o valor limite (Pulso). Caso o valor da leitura seja inferior ao definido na variável Pulso, o LED deverá ser desligado.

Para tal, usamos a estrutura condicional if-else.

Ao final, o Sketch deste projeto ficará da seguinte maneira:

/*
  - SENSOR DE BATIMENTO CARDÍACO/MONITOR DE PULSO  -
  ==================================================
  == BLOG DA ROBOTICA - www.blogdarobotica.com ==
  ==================================================
  Autora: Carol Correia Viana
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  ==================================================
*/

#define sensorPin A0 //Define que o Pino de sinal do sensor deve ser conectado a entrada analógica A0 do Arduino      
#define ledPin 13 //Define o pino ledPin do Arduino  

int LeituraSensor;//Declaração da variável que irá armazenar os valores de leitura do sensor de batimento
int Pulso = 550; //Valor analogico limiar para ser considerado uma Pulso

void setup() {
  pinMode(ledPin, OUTPUT); //ledPin sendo um pindo de saída de sinal
  Serial.begin(9600); //Incia a comunicação serial com velocidade de dados em 9600
}

void loop() {
  LeituraSensor = analogRead(sensorPin); //Realiza a leitura analogica do pino de sinal do sensor
  Serial.println(LeituraSensor); //Mostra os valores analógicos no monitor serial
  
  if (LeituraSensor > Pulso) { //Se o valor de leitura for superior ao limiar....
    digitalWrite(ledPin, HIGH); //ledPin do Arduino acende
  }
  else {
    digitalWrite(ledPin, LOW); //ledPin do apaga
  }
  delay(10);//tempo de espera de 10 milissegundos entre as leituras
}

Por fim, basta enviar o código para o Arduino e abrir o Serial Plotter, por meio do atalho Ctrl+Shift+L, para ver os pulsos de batimento, conforme a Figura 9.

Imagem ilustrativa do resultado da leitura do sensor exibida no Serial Plotter do Arduino IDE.
Figura 9: Resultado da leitura do sensor exibida no Serial Plotter do Arduino IDE.

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.