цифровая электроника
вычислительная техника
встраиваемые системы

 




Arduino и датчик сердцебиения (датчик пульса)

Автор: Mike(admin) от 9-11-2022, 03:55

В данной статье мы рассмотрим, как подключить Arduino к датчику сердцебиения или датчику пульса или датчику сердечного ритма, и как считывать с него информацию о сердцебиении. Вы можете найти подобные устройства в своих умных часах или в больницах. Они весьма распространены в наше время, но мы сделаем свое устройство на основе недорогих компонентов, которые можно приобрести практически в любом магазине для радиолюбителей.


Arduino и датчик сердцебиения (датчик пульса)

Мы помимо Arduino и самого датчика также добавим в наш проект ЖК-дисплей 16x2, на котором будем отображать значения, рассчитанные Arduino от датчика пульса. Схема подключения компонентов довольно проста и представлена далее.


Arduino и датчик сердцебиения (датчик пульса)

Код программы для Arduino следующий.



#define USE_ARDUINO_INTERRUPTS true
#include <PulseSensorPlayground.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

const int PulseWire = 0;
int LED_3 = 3;
int Threshold = 550; 

byte heart1[8] = {B11111, B11111, B11111, B11111, B01111, B00111, B00011, B00001};
byte heart2[8] = {B00011, B00001, B00000, B00000, B00000, B00000, B00000, B00000};
byte heart3[8] = {B00011, B00111, B01111, B11111, B11111, B11111, B11111, B01111};
byte heart4[8] = {B11000, B11100, B11110, B11111, B11111, B11111, B11111, B11111};
byte heart5[8] = {B00011, B00111, B01111, B11111, B11111, B11111, B11111, B11111};
byte heart6[8] = {B11000, B11100, B11110, B11111, B11111, B11111, B11111, B11110};
byte heart7[8] = {B11000, B10000, B00000, B00000, B00000, B00000, B00000, B00000};
byte heart8[8] = {B11111, B11111, B11111, B11111, B11110, B11100, B11000, B10000};
//----------------------------------------

int Instructions_view = 500;
                               
PulseSensorPlayground pulseSensor;

//--------------------------------------------------------------------------------
void setup() {   
  Serial.begin(9600);
  lcd.begin();
  
  //----------------------------------------
  lcd.createChar(1, heart1);
  lcd.createChar(2, heart2);
  lcd.createChar(3, heart3);
  lcd.createChar(4, heart4);
  lcd.createChar(5, heart5);
  lcd.createChar(6, heart6);
  lcd.createChar(7, heart7);
  lcd.createChar(8, heart8);
  //----------------------------------------
  
  lcd.setCursor(0,0);
  lcd.print(" HeartBeat Rate ");
  lcd.setCursor(0,1);
  lcd.print("   Monitoring   ");

  //----------------------------------------
  pulseSensor.analogInput(PulseWire);   
  pulseSensor.blinkOnPulse(LED_3);
  pulseSensor.setThreshold(Threshold);   
  //----------------------------------------

  //----------------------------------------
  if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");
  }
  //----------------------------------------

  delay(2000);
  lcd.clear();
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
void loop() {
  int myBPM = pulseSensor.getBeatsPerMinute();

  //----------------------------------------
  if (Instructions_view < 500) {
    Instructions_view++;
  }
  
  if (Instructions_view > 499) {
    lcd.setCursor(0,0);
    lcd.print("Put your finger ");
    lcd.setCursor(0,1);
    lcd.print("on the sensor   "); 
    delay(1000);
    lcd.clear();
    delay(500);
  }
  //----------------------------------------

  //----------------------------------------
  if (pulseSensor.sawStartOfBeat()) {
    Serial.println("&#9829;  A HeartBeat Happened ! ");
    Serial.print("BPM: ");
    Serial.println(myBPM); 

    //----------------------------------------
    lcd.setCursor(1,1);
    lcd.write(byte(1));
    lcd.setCursor(0,1);
    lcd.write(byte(2));
    lcd.setCursor(0,0);
    lcd.write(byte(3));
    lcd.setCursor(1,0);
    lcd.write(byte(4));
    lcd.setCursor(2,0);
    lcd.write(byte(5));
    lcd.setCursor(3,0);
    lcd.write(byte(6));
    lcd.setCursor(3,1);
    lcd.write(byte(7));
    lcd.setCursor(2,1);
    lcd.write(byte(8));
    //----------------------------------------

    //----------------------------------------
    lcd.setCursor(5,0);
    lcd.print("Heart Rate");
    lcd.setCursor(5,1);
    lcd.print(": ");
    lcd.print(myBPM);
    lcd.print(" ");
    lcd.print("BPM     ");
    //----------------------------------------
    
    Instructions_view = 0; 
  }
  //----------------------------------------
  
  delay(20);
}

Принцип работы полученного устройства весьма прост. Вам просто нужно приложить палец к датчику, и Arduino автоматически рассчитает частоту сердечных сокращений.




© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий