آردوینو آموزش آردوینو پروژه های آردوینو کیت آردوینو

آموزش ماژول ضربان قلب Heartbeat Module از پکیج ۳۷ سنسور آردوینو

Arduino-Sensor-Kit-Heartbeat-Module-digispark
نوشته شده توسط پریسا پوربلورچیان

ضربان قلب یکی از پارامترهای حیاتی انسان است. برای تشخیص ضربان قلب روش‌ها و تجهیزات مختلفی وجود دارد. این سنسورهای تشخیص ضربان قلب بر اساس حساسیت و شیوه سنجش متفاوت هستند. ولی به صورت عمده تمامی این سنسورها از روی سطح پوست بدن، پارامترهای مورد نیاز را می‌سنجند. در این آموزش سنسور سنجش ضربان قلب از پکیج ۳۷ سنسور آردوینو را انتخاب کرده‌ام. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

ماژول ضربان قلب Heartbeat Module

ماژول تشخیص ضربان قلب از یک سنسور مادون قرمز اینفرارد IR و یک فوتو تراتزیستور تشکیل شده است. هنگامی که انگشت خود را روی ماژول قرار می‌دهید، ال ای دی مادون قرمز یک طرف انگشت و فوتوتراتزیستور در طرف دیگر انگشت قرار می‌گیرد. سنسور مادون قرمز به کار رفته شده در این ماژول با فرکانس بینایی انسان تنظیم شده است. در واقع سنسور از طریق نبض اثر انگشت، ضربان قلب را تشخیص داده و به عنوان دیتا ارسال می‌کند. ولتاژ کاری ماژول تشخیص ضربان قلب ۵ ولت DC است. در نتیجه از طریق سنسور IR مادون قرمز پالس دریافتی از نبض ما گرفته خواهد شد. ماژول ضربان قلب دارای ۳ پایه به ترتیب Signal , Vcc , GND می‌باشد. در ادامه به بررسی ماژول و نحوه اتصال آن خواهیم پرداخت.

هدف از آموزش:

در این آموزش با استفاده از یک سنسور تشخیص نبض از طریق انگشت، ضربان قلب heartbeat را تشخیص خواهیم داد. با قرار دادن انگشت بین سنسور مادون قرمز و فوتوترانزیستور، پالس دریافت شده از نبض را بر روی سریال مانیتور نمایش می‌دهد. از آنجایی که سنسور دارای حساسیت بالایی است، حتما در جایی ثابت مانند بردبورد قرار دهید. در ادامه نحوه ی اتصال ماژول را بررسی خواهیم کرد.

 

وسایل مورد نیاز:

آموزش ماژول ضربان قلب Heartbeat Module از پکیج 37 سنسور آردوینو-دیجی اسپارک

اتصالات:

  • پایه سیگنال (S) ماژول تشخیص ضربان قلب – heatbeat module را به پایه A0 آنالوگ آردوینو اتصال دهید.
  • پایه VCC ماژول تشخیص ضربان قلب – heartbeat module را به پایه ۵ ولت آردوینو اتصال دهید.
  • پایه GND ماژول تشخیص ضربان قلب – heartbeat module را به پایه GND آردوینو اتصال دهید.
  • در صورت علاقه میتوانید یک ال ای دی ساده را به پایه ۱۳ آردوینو اتصال دهید.

 

کد آموزش ماژول تشخیص ضربان قلب:

کد بالا را در نرم افزار آردوینو کپی کنید. سپس طبق اتصالات گفته شده در بالا، اتصالات را انجام دهید. حال سنسور تشخیص ضربان قلب باید ثابت قرار گیرد. از این رو از یک بردبورد برای اتصال سنسور استفاده کنید. سپس سریال مانیتور را باز کنید. در ابتدا مشاهده می‌کنید که سسنور مقادیر ثابت ۱۰۲۳,۱۰۲۳,۰ را به عنوان پالس خروجی ارسال میکند. آخرین پالس ارسالی ۱۰۲۳ می‌باشد. با قرار دادن انگشت خود روی فوتوتراتزستور، مشاهده می‌کنید که پالس دریافتی تغییر کرده و در سریال مانیتور نمایش داده می‌شود. با اتصال ال ای دی به صورت دلخواه می‌توانید تغییرات را مشاهده کنید. حال اگر انگشت خود را مجددا از سنسور رها کنید، پالس ۰ از سنسور ارسال خواهد شد.

نکته مهم:

همانطور که در کدها توضیح داده شده است، باد ریت baud rate را روی ۱۱۵۲۰۰ تنظیم کنید.

 آموزش ماژول ضربان قلب Heartbeat Module از پکیج 37 سنسور آردوینو -دیجی اسپارک

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۳۰ دیدگاه

  • سلام خسته نباشید یه سوال
    من هر وقت از دستور زیر برای کد نویسی استفاده میکنم ارور میده برنامه چراااا؟
    done = radio.read(msg, 1);
    برای done ایراد میگیره

    • سلام
      لطفا به عنوان پست آموزشی جهت پرسش سوالات دقت فرمایید. سوال شما در مورد ماژول NRF است و باید در یکی از آموزش های مربوط به NRF سوال خود را مطرح کنید. از این طریق اقدام نمایید.

      آموزش NRF

      • بله شما درست میفرمایید
        اما من یه پست گذاشته بودم که قبل پست من اخرین پست برا سال ۹۵ بود تو قسمت مربوط به nrf
        و کسی هم جواب نداد
        دیدم پستای شما جدیده و هر روز چک میکنین گفتم زود جواب بگیرم بازم ممنون

    • سلام
      از پیشنهاد خوب شما ممنونم. در حال حاضر این کالا در فروشگاه موجود نیست. دقت داشته باشید که آموزش‌ها براساس تقاضا اولویت بندی می‌شوند. در صورتی که تقاضا باشد، اقدام خواهد شد.

    • سلام
      از این سنسور استفاده کردید؟
      حتما اتصالات را چک کنید. پایه سیگنال باید به پایه آنالوگ A0 متصل شود.

  • سلام ببخشید من کد ها رو وارد کردم و کامپایل کردم رفتم تو سریال مانیتور چیزی نشون نمی داد و دستگاه هم همینطور چشمک میزنه . چرا؟

    • سلام
      اجرای این کد پیچیده نیست. تنها به دو نکته دقت کنید. اول اینکه سنسور حتما به پایه آنالوگ A0 وصل شود و دوم سریال مانیتور بر روی باد ریت ۱۱۵۲۰۰ تنظیم شده باشد. موارد را چک کنید و نتیجه را از همین طریق اعلام نمایید.

        • این ارور مربوط به عدم شناسایی برد است. پورت را چک کنید و یک بار کابل شیلد را از برد جدا و کامپایل کنید. سپس مجددا اتصالات را برقرار کنید.
          لطفا اروری که با آن مواجه شدید را کامل کپی کنبد تا بررسی کنم.

          • Arduino: 1.8.5 (Windows 8.1), Board: “Arduino/Genuino Uno”

            Sketch uses 3376 bytes (10%) of program storage space. Maximum is 32256 bytes.
            Global variables use 206 bytes (10%) of dynamic memory, leaving 1842 bytes for local variables. Maximum is 2048 bytes.
            avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
            avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
            avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
            avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
            avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
            avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
            avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
            avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
            avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
            avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
            An error occurred while uploading the sketch

            This report would have more information with
            “Show verbose output during compilation”
            option enabled in File -> Preferences.

  • سلام
    بنظر میرسه کد اشکالاتی داره
    برای مثال متغیر oldChange تعریف شده ولی اصلا استفاده ای ندارد!
    ضمنا متغیرهایی که داخل Loop تعریف شده اند:
    static double oldValue = 0; // برای محاسبه میانگین
    static double oldChange = 0; //محاسبه میانگین

    با هربار اجرای حلقه مجددا ۰ میشوند!
    پس مقدار قبلی را برای محاسبه میانگین حفظ نمیکنند!
    این متغیرها باید در قسمت ابتدای برنامه معرفی شوند نه داخل حلقه Loop

    ضمنا فرمول میانگین گیری هم نیاز به تجدیدنظر دارد

    ممنون از محبت شما

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

  • قابل توجه دوستان:
    در این سنسور، حتما روی فرستنده باید بسمت گیرنده باشد
    نه این که اشعه مادون قرمز را بسمت دیگری ارسال کند!