آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو پکیج سنسور آردوینو

آموزش ماژول ضربان قلب 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‌ را به بهترین شکل با شما در میان بگذارم.

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

۵۸ دیدگاه

    • سلام
      برای اینکار باید از کتابخانه Neopixel استقاده کنید و در کدها نیز تعریف کنید.

  • سلام خسته نباشید یه سوال
    من هر وقت از دستور زیر برای کد نویسی استفاده میکنم ارور میده برنامه چراااا؟
    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

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

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

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

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

    • از اینکه اطلاعات خود را با دیگر کاربران به اشتراک می‌گذارید، ممنونم.

  • سلام
    اگر بخوام از مانیتور استفاده کنم در سنسور اندازه گیری ماژول ضربان قلب چی کار باید بکنم تو نوشتن کد برنامه فرقی میکنه یا نه.

      • با سلام
        منظور استفاده از ال سی دی کاراکتری ۱۶*۲ جهت مانیتورینگ ضربان قلب جای استفاده لپ تاپ.

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

          آموزش راه اندازی سه مدل ال سی دی کاراکتری

  • سلام
    من به همراه دوستم یه سنسور نبض و به اردوینو وصل کردیم، البته با یک بردبورد که با هر بار نبض چراغ روی بورد هم روشن میشه( به همراه کدهای برنامه) که اجرا شد.
    ولی استادمون گفتن باید یه بلندگو به همراه یه lcd نیز نصب کنید تا نمره پروژه رو بگیریم.
    میشه کمک کنید تو این پروژمون موفق بشیم

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

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

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

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

    • با سلام
      در این پروژه دیتا بر روی سریال مانیتور نرم افزار آردوینو نمایش داده می‌شود.

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

  • درود خانم مهندس
    من ضربان سنج رو با برد نانو تهیه کردم ولی متاسفانه خیلی خطا داره. میخوام یک کلید کنار سنسور تعبیه کنم که وقتی کلید فشرده شد سنسور نمونه برداری کنه یا توی کد اون یک شرط تعریف کنم که مثلا ۳۰ ثانیه نمونه برداری کنه بعد میانگین اونها رو اعلام کنه.
    لطفا راهنمایی کنید
    سپاس

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

  • سلام ضربان قلب رو برای من نشون نمیده بادریت هم تنظیم کردم فقط انگشت رو میذارم و برمیدارم تغیر می کنه

    • با سلام
      عدد ۹۰۰ عدد اشتباهی نیست. در این خصوص نویز میتواند در ارسال دیتای سنسور تاثیر گذار باشد. کابل های مورد استفاده و روش تست سنسور را مجدد بررسی نمایید.

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

    • با سلام
      همانطور که اعلام شد ولتاژ آنالوگی که روی پایه آردوینو نشان داده می‌شود بین ۰ تا ۱۰۲۳ قابل تغییر است. عدد ۹۰۰ معقول است و تنها کافیست سنسور را در بازه مورد نظر تنظیم کنید.

  • سلام من رفتم تو بخش سریال پلاتر اون جا خیلی بهتر نشون می ده حتما ببینید ممنون از راهنمایی تون

    • با سلام
      بله در آپدیت جدید آردوینو سریال پلاتر نیز اضافه شده است.