Пульсометр KY-039. Датчики. Ардуино

Пульсометр KY-039
Пульсометр KY-039
Пульсометр KY-039

Привет! Сегодня сделаем обзор на датчик сердцебиения или пульсометр KY-039. Соберем простую схему для отображения пульса на графике плоттера.

В прошлый раз мы рассматривали еще один интересный датчик, датчик наклона KY-027. И собрали с ним интересную схему. Посмотрите тот пост, если пропустили или уже забыли.

А сегодня попробуем собрать простую схему для отображения пульса и немного поэкспериментируем с датчиком сердцебиения или пульсометром.

Для выполнения этого урока нам понадобятся

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • Пульсометр KY-039
  • Кабель USB

Пульсометр KY-039

Датчик KY-039 состоит из инфракрасного светодиода и фототранзистора. Инфракрасный свет светодиода поступает на фототранзистор сквозь палец. При изменении кровяного давления в капиллярах пальца, меняется сопротивление фототранзистора. И эти данные отображаются на выходе с датчика.

Для более точных показаний датчика, следует закрыть фототранзистор от солнечного или искусственного света.

Принципиальная схема

Датчик KY-039 работает от 5 вольт. которые подаются на центральный контакт. Данные с выхода S нужно считать на аналоговом пине Ардуино. А оставшийся контакт соединим с землей.

Принципиальная схема подключения Пульсометра
Принципиальная схема подключения Пульсометра

Простейший скетч позволит нам снять показания с аналогового пина Ардуино. И проверить работоспособность датчика.

Просто выведем на плоттер показания пина A0.

int sensorPin = 0;

void setup() {
   Serial.begin(9600);
}

void loop (){
  Serial.println(analogRead(sensorPin));
  delay(100);
} 

Откроем кно плоттера, чтобы увидеть примерно такую картину.

Вывод данных с датчика сердцебиения KY-039
Вывод данных с датчика сердцебиения KY-039

Измерения происходят слишком быстро. И обработать их пока что трудно. Но мы можем изменить программу для более точной обработки данных.

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

#define samp_siz 20 // 20 измерений

Заполним этими данными массив.

int reads[samp_siz]; 

Удаляем старые данные из массива и заменяем их новыми.

reader = analogRead (sensorPin);
sum -= reads[ptr];
sum += reader;
reads[ptr] = reader;
last = float(sum) / samp_siz; // вычисляем среднее
ptr++;
ptr %= samp_siz;

С усредняющей программой мы можем увидеть настоящий сердечный ритм.

Сердечный ритм от пульсометра KY-039
Сердечный ритм от пульсометра KY-039
Измеряем сердцебиение датчиком KY-039
Измеряем сердцебиение датчиком KY-039

Полный текст программы

#define samp_siz 4
#define rise_threshold 5

int sensorPin = 0;
void setup(){
   Serial.begin(9600);
}

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 (sensorPin);
       n++;
       now = millis();
     } while (now < start + 20);  
     reader /= n;
     sum -= reads[ptr];
     sum += reader;
     reads[ptr] = reader;
     last = sum / samp_siz;
     if (last > before){
       rise_count++;
       if (!rising && rise_count > rise_threshold){
         rising = true;
         first = millis() - last_beat;
         last_beat = millis();
         print_value = 60000. / (0.4 * first + 0.3 * second + 0.3 * third);
         Serial.print(print_value);
         Serial.print('\n');
         third = second;
         second = first;
       }
     } else {
       rising = false;
       rise_count = 0;
     }
     before = last;
     ptr++;
     ptr %= samp_siz;
   }
} 

Заключение

Мы рассмотрели пульсометр KY-039 и его подключение к Ардуино. Использовали простую программу для просмотра данных с датчика. Написали скетч для более удобного считывания данных с датчика. И посмотрели на плоттере Ардуино сердечный ритм.

Где купить

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

Ваш адрес email не будет опубликован.