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

Мы помимо Arduino и самого датчика также добавим в наш проект ЖК-дисплей 16x2, на котором будем отображать значения, рассчитанные 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("♥ 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