Монитор сердечного ритма (пульса) на Arduino

Сердечный ритм (частота сокращений сердечной мышцы), температура тела и давление крови – крайне важные параметры человеческого организма, поэтому для их измерения создано множество разнообразных устройств. В этой статье мы рассмотрим монитор сердечного ритма на основе платы Arduino Uno, который подсчитывает количество сокращений сердечной мышцы (пульс) в минуту. Для этой цели мы будем использовать специальный датчик, который измеряет сердечный ритм человека когда тот прислонит свой палец к нему.

Монитор сердечного ритма (пульса) на Arduino: внешний вид конструкции

Необходимые компоненты

Плата Arduino Uno
Датчик сердечного ритма (Heart beat sensor)
ЖК дисплей 16х2
Кнопка (2 шт.)
Макетная плата
Источник питания
Соединительные провода

Принципы измерения сердечного ритма

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

Five_pusle_time=time2-time1;
Single_pulse_time= Five_pusle_time /5;
rate=60000/ Single_pulse_time;
где time1 – время поступления первого импульса,
time2 – время поступления последнего (пятого) импульса,
rate – рассчитанная частота сердечного ритма.

Когда поступает первый импульс (сердечный удар) мы запускаем таймер подсчета времени на Arduino с помощью функции millis();. После этого мы сохраняем в памяти время первого импульса в переменной time1. Затем ждем когда закончатся 5 импульсов. После этого сохраняем время пятого импульса в переменной time2. Затем мы вычитаем time1 из time2 чтобы определить длительность пяти импульсов. Далее мы делим получившуюся разницу на 5 чтобы получить длительность одного импульса. Теперь, когда нам известна длительность одного импульса мы легко можем подсчитать количество импульсов в минуту разделив 60000 миллисекунд на длительность одного импульса:

Rate= 600000/single pulse time,

где single pulse time – длительность одного импульса.

Структурная схема работы устройства показана на следующем рисунке.

Блоковая диаграмма монитора сердечного ритма на Arduino

В этом проекте мы использовали датчик сердечного ритма, который содержит пару инфракрасных датчиков, способных считывать сердечный ритм с давления крови. Сердце при помощи своих сокращений заставляет кровь циркулировать (пульсировать), а мы считываем эти изменения.

Работа схемы

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

Схема монитора сердечного ритма (пульса) на ArduinoВыход датчика сердечного ритма непосредственно подключен к контакту 8 платы Arduino. Его контакты Vcc и GND подсоединены к источнику питающего напряжения и земле соответственно. ЖК дисплей подключен к Arduino в 4-битном режиме. Его контакты RS, RW и En подключены к контактам Arduino 12, GND и 11 соответственно. Контакты для передачи данных ЖК дисплея D4-D7 подключены к контактам Arduino 5, 4, 3 и 2. Одна кнопка (подключена к контакту 6 Arduino) используется для сброса считывания данных, а вторая (подключена к контакту 7 Arduino) – для старта системы считывания импульсов.

Исходный код программы

В программе мы будем использовать функцию digitalRead() для считывания выхода датчика сердечного ритма и функцию millis() для расчета времени, которое мы потом будем использовать для расчета частоты сердечных сокращений.

Код программы для расчета частоты сердечного ритма

Но перед этим мы должны инициализировать все компоненты, которые будем использовать в программе.

Код программы для инициализации необходимых компонентов

И еще необходимо подключить внутренние подтягивающие регистры к контактам, к которым подключены кнопки:

digitalWrite(Reset, HIGH);
digitalWrite(start, HIGH);

Далее представлен полный текст программы.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
254 просмотров


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *