Датчик пульса Arduino KY-039 используется для измерения пульса (сердцебиения) с вашего пальца. Сенсор реагирует на изменение прозрачности пальца для инфракрасного излучения при изменении кровяного давления. Рассмотрим в статье, как подключить сенсор к микроконтроллеру Ардуино и отправить показания в последовательный порт IDE. Но сразу предупредим, что не стоит ожидать от датчика высокого качества показаний.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- датчик сердцебиения KY-039
- светодиод и резистор
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
Датчик частоты пульса состоит из фототранзистора и инфракрасного светодиода. Инфракрасный свет, излучаемый светодиодом, проникает через палец на фототранзистор. При изменении давления крови в капиллярах пальца, соответственно изменяется сопротивление фототранзистора. На сайтах, посвященных программированию Ардуино, еще никто не добился максимально достоверных измерений с помощью этого сенсора.
Датчик пульса Arduino принцип работы, распиновка

Датчик пульса Arduino характеристики (datasheet)
- Источник питания: от 3 до 5 В
- Потребляемая мощность: 4 мА
- Разъемы: GND, VCC, сигнал
Для обеспечения стабильных показаний датчика фототранзистор должен быть защищен от солнечного или искусственного света, чтобы избежать помех. На средний контакт модуля датчика частоты сердечных сокращений KY-039 подается питание +5 Вольт, «-» — это земля (GND). S — аналоговый выход, который подключается к аналоговым входам. Данные с модуля передаются на последовательный монитор порта утилиты Arduino IDE.
Как подключить датчик пульса ky-039 к Arduino

Следующий код передает частоту сердечных сокращений человека (количество ударов сердца в минуту) на монитор последовательного порта. Данные более или менее надежны, и мы добавили в схему светодиод. Помните, что на датчик влияет внешнее излучение (солнце, лампа и т.д.), и данные передаются на монитор порта IDE Arduino с небольшой задержкой. Подключите датчик по схеме выше и загрузите программу в плату.
Скетч для датчика сердечного ритма Ардуино
#define samp_siz 4
#define rise_threshold 5
void setup() {
Serial.begin(9600);
pinMode(A1, INPUT);
pinMode(12, OUTPUT);
}
void loop() {
float reads[samp_siz], sum;
long int now, ptr;
float last, reader, start;
float first, second, third, before, print_value;
bool rising;
int rise_count;
int n;
long int last_beat;
for (int i=0; i < samp_siz; i++)
reads[i] = 0;
sum = 0;
ptr = 0;
while (1) {
n = 0;
start = millis();
reader = 0.;
do {
reader += analogRead(A1);
n++;
now = millis();
}
while (now < start + 20);
reader /= n; // we got an average
sum -= reads[ptr];
sum += reader;
reads[ptr] = reader;
last = sum / samp_siz;
if (last > before) {
rise_count++;
if (!rising && rise_count > rise_threshold) {
digitalWrite(12, HIGH);
rising = true;
first = millis() - last_beat;
last_beat = millis();
print_value = 60000. / (0.4 * first + 0.3 * second + 0.3 * third);
Serial.println(print_value);
third = second;
second = first;
}
}
else {
rising = false;
rise_count = 0;
digitalWrite(12, LOW);
}
before = last;
ptr++;
ptr %= samp_siz;
}
}
Заключение. Датчик сердечного ритма Arduino можно использовать в интересных diy проектах. Мы рассмотрели, как подключить модуль к микроконтроллеру Arduino и получить достаточно достоверные данные о частоте сердечных сокращений человека. Если у вас остались вопросы по теме, или у вас есть предложения по улучшению программы Arduino для управления модулем KY 039 — оставляйте их в комментариях к этой статье.
