رباتیک و هوافضا

محاسبه ی ضربان قلب با آردوینو

ضربان قلب با آردوینو

به نام خدا

محاسبه ی ضربان قلب با آردوینو

 

در این پروژه ما قصد داریم تا با استفاده از آردوینو تعداد تپش قلب را در یک دقیقه محاسبه کنیم. برای اینکار از یک سنسور تپش قلب استفاده کرده ایم که با قرار دادن انگشت بر روی سنسور می تواند تعداد تپش قلب را بشمارد.

قطعات مورد نیاز:

آردوینو

سنسور تپش قلب

ال سی دی

میکرو سوئیچ

برد بورد

منبع تغذیه

سیم بر بورد

 

طرز کار این پروژه ساده است اما محاسباتش کمی پیچیده است. روش های متفاوتی برای محاسبه ی ضربان قلب وجود دارد. در این جا ما فقط ۵ پالس را میخوانیم. سپس با استفاده از فرمول زیر ضربان قلب را در یک دقیقه محاسبه می کنیم.

     Five_pusle_time=time2-time1;

      Single_pulse_time= Five_pusle_time /5;

      rate=60000/ Single_pulse_time;

هنگامی که پالس وارد شد ما شروع به شمارش می کنیم. سپس برای ۵ پالس صبر می کنیم . پس از دریافت ۵ پالس ما دوباره شمارش را برای زمان ۲ انجام می دهیم. سپس مقدار زمان ۱ را از آن کم می کنیم  و بعد از آن بر ۵ که تعداد پالس ها می باشد تقسیم میکنیم. اکنون زمان یک پالس را داریم و به راحتی می توان آن را در یک دقیقه با توجه به فرمول زیر محاسبه کرد.

بیشتر بخوانید...  راه اندازی سنسور شتاب سنج ADXL335

Rate= 600000/single pulse time.

ضربان قلب با آردوینو

در این سنسور از جفت IR استفاده شده است. هنگامی که خون در رگ ها جاری می شود مقدار ضربان آن با توجه به تپش قلب تغییر می کند و این تغییر توسط سنسور به ولتاژ تبدیل می شود و می توان از آن به عنوان ورودی استفاده کرد.

 

شماتیک مدار

شماتیک مدار در شکل زیر قابل مشاهده است.همانطور که مشاهده می شود از دو میکروسوئیچ برای ریست و استارت استفاده شده است. همچنین میتوان حساسیت این سنسور را با قرار دادن یک پتانسیومتر در سر راه سنسور افزایش داد.

ضربان قلب با آردوینو

کد این پروژه:

دانلود فایل
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int in = 8;
int Reset=6;
int start=7;
int count=0,i=0,k=0,rate=0;
unsigned long time2,time1;
unsigned long time;
byte heart[8] = 
{
  ۰b00000,
  ۰b01010,
  ۰b11111,
  ۰b11111,
  ۰b11111,
  ۰b01110,
  ۰b00100,
  ۰b00000
};
void setup()
{
  lcd.createChar(1, heart);
  lcd.begin(16,2);
  
  lcd.print("Heart Beat ");
  lcd.write(1);
  lcd.setCursor(0,1);
  lcd.print("Monitering");
  pinMode(in, INPUT);
  pinMode(Reset, INPUT);
  pinMode(start, INPUT);
  digitalWrite(Reset, HIGH);
  digitalWrite(start, HIGH);
  delay(1000);
}
void loop()
{
  if(!(digitalRead(start)))
  {
    k=0;
    lcd.clear();
    lcd.print("Please wait.......");
    while(k<5)
    {
     if(digitalRead(in))
     {
      if(k==0)
      time1=millis();
      k++;
      while(digitalRead(in));
     }
    }
      time2=millis();
      rate=time2-time1;
      rate=rate/5;
      rate=60000/rate;
      lcd.clear();
      lcd.print("Heart Beat Rate:");
      lcd.setCursor(0,1);
      lcd.print(rate);
      lcd.print(" ");
      lcd.write(1);      
      k=0;
      rate=0;
    }
  if(!digitalRead(Reset))
  {
    rate=0;
     lcd.clear();
      lcd.print("Heart Beat Rate:");
      lcd.setCursor(0,1);
      lcd.write(1);
      lcd.print(rate);
      k=0;
  }
}

 

بیشتر بخوانید...  آموزش خواندن و نوشتن اطلاعات در حافظه ی SD

 

دیدگاه‌ها (0)

*
*