تحلیل کتابخانه

تحلیل و بررسی کتابخانه SparkFun_ADXL345.h

نوشته شده توسط معین صابری

سنسورهای شتاب سنج یکی از پرکاربردترین ابزارها در طراحی سیستم ها به شمار می روند. از این سنسور در تلفن های همراه، گجت های هوشمند، دستگاه های پزشکی، سیستم های اعلام سرقت و… استفاده می شود.  سنسور ADXL345 یک سنسور شتاب سنج سه محوره با خروجی دیجیتال است. به کمک این سنسور می توان شتاب گرانش را در جهت های مختلف اندازه گیری نمود. برای راه اندازی و کار با این سنسور، کتابخانه های متعددی وجود دارد. در این آموزش ما به شرح و استفاده از کتابخانه SparkFun_ADXL345.h می پردازیم. در ابتدا توابع کلیدی کتابخانه معرفی شده و در نهایت با یک نمونه کد، مثالی از کاربرد را خواهیم داشت. در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.

 


نصب کتابخانه SparkFun_ADXL345


به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه سنسور شتاب سنج با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.

Analysis of the SparkFun_ADXL345.h library

مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت ADXL345 را تایپ کنید. پس از چند لحظه، تعداد زیادی کتابخانه مرتبط در صفحه ظاهر خواهند شد. در این مرحله، لطفا کتابخانه SparkFun adxl345 را مطابق کادر قرمز رنگ در تصویر زیر، یافته و سپس بر روی گزینه install کلیک کنید.

 

Analysis of the SparkFun_ADXL345.h library

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

 


ماژول های سازگار با کتابخانه


سنسور شتاب سنج ADXL345 دارای خروجی دیجیتال و از نوع I2C است. کتابخانه SparkFun نیز جهت ارتباط با سنسور، از رابط سریال I2C سخت افزاری استفاده می کند. بنابراین، برد مورد نظر شما می بایست از i2c سخت افزاری پشتیبانی کند. ذکر این نکته ضروریست که بردهای آردوینو UNO و MEGA به سادگی از این کتابخانه پشتیبانی می کنند.

Analysis of the SparkFun_ADXL345.h library

 


توابع کلیدی کتابخانه


در این قسمت به بررسی توابع کلیدی کتابخانه سنسور شتاب سنج می پردازیم. در رابطه با توابع، در نظر بگیرید که ورودی ها از سمت چپ به راست، به ترتیب شماره های یک، دو، سه و… را به خود اختصاص می دهند. به عبارت دیگر، منظور از ورودی اول سمت چپ ترین ورودی بوده و سایر رورودی ها از ۲ به بعد، به خود شماره اختصاص می دهند.

 

توابع کتابخانه SparkFun_ADXL345.h - دیجی اسپارک

 


اجرای یک نمونه برنامه


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

 


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


  1. سنسور شتاب سنج ADXL345
  2. انواع برد آردوینو
  3. انواع ماژول ESP

 


جمع بندی


در این آموزش به بررسی کتابخانه SparkFun_ADXL345 جهت راه اندازی سنسور شتاب سنج ADXL345 پرداختیم. این کتابخانه قادر است تا با برقراری ارتباط با شتاب سنج ADXL345، شتاب گرانشی را به سادگی از سنسور خوانده و نمایش دهد. علاوه بر این، این کتابخانه قابلیت تشخیص ضربه(TAP)، سقوط آزاد، حرکت در جهت های مختلف و امکانات بی شمار دیگری را در خود جای داده است. در این آموزش ضمن بررسی توابع، به ارائه یک مثال از چگونگی عملکرد، پرداخته شده است.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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

۶ دیدگاه

  • سلام
    خسته نباشید
    جناب مهندس در انجام پروژه ایی نیازمند کمک هستیم . امکانش هست به صورت خصوصی اموزش بدین . اگر هم مقدور نیست ممنون میشم کسی رو معرفی کنید . بنده از این سیستم ها چیزی بلد نیستم و نه تحصیلاتی در این خصوص دارم پروژه شخصی میباشد . باسپاس فراوان
    ali*******@gmail.com
    ۰۹۱۲*****

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

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