آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

به نام خدا

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

شتاب سنج با محور سه گانه و یک رابط دیجیتال است.

نگاه اجمالی :

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

ADXL345 یک ماژول شتاب سنج سه بعدی MEMS است که با هر دو رابط I2C و SPI کار میکند. برد Adafruit Breakout برای این ماژول ولتاژ ۳٫۳v را آماده کرده اند ،از این رو آنها با میکروکنترلر های ۵v مثل آردوینو به راحتی ارتباط برقرار میکنند.

ADXL345 دارای ۴ محدوده ی حساسیت +/-۲G تا +/-۱۶G است . از  داده های خروجی با د رنج ۱۰Hz تا ۳۲۰۰Hz پشتیبانی میکند.

 

نحوه ی کار سنسور:

این سنسور از یک ساختار میکرو مکانیکی روی سلیکون ساخته شده است. این ساختار توسط چند سلیکون به صورت تعلیق در آمده است که در صورت تحریک در محور های X،Y و یا Z به همان سمت منحرف میشود. این انحراف باعث تغییر در ظرفیت خازنی بین صفحه ثابت و صفحه ی متصل به ساختار معلق می شود. این تغییر ظرفیت در هر محور به یک ولتاژ خروجی متناسب با شتاب در هر محور تبدیل می شود.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

برد و سیم کشی:

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

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

مونتاژ:

پین هدر را قرار دهید:

رشته ی پین هدر را در صورت نیاز برش دهید . پین هدر را از سمت سیم های کوتاه ترش بر روی برد بورد سوار کنید.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

اضافه کردن Breakout :

برد را روی رشته ی پین هدر ثابت کنید.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

لحیم کردن :

از اتصال الکتریکی همه ی پین ها اطمینان حاصل کنید.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

ارتباط I2C :

ADXL345 Breakout یک آدرس I2C_0X53 دارد.

برای ارتباط I2C فقط ۴ اتصال لازم است:

زمین به زمین

پین VIN به ۵V

پین SDA به SDA (پین ۴ آنالوگ در آردوینو کلاسیک)

پین SCL به SCL (پین ۵ آنالوگ در آردوینو کلاسیک)

 

Adafruit breakout دارای سطح بی ثبات و مدار تنظیم کننده است، بنابر این شما میتوانید در ولتاژ بین ۳ و ۵ راه اندازی کنید و از سطح ۳V و ۵V منطقی I2C استفاده کنید.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

برنامه نویسی و کالیبراسیون :

 

کتابخانه را نصب کنید :

کتابخانه ADXL345 را دانلود کرده و آن را نصب کنید.اگه قبلا این کتابخانه را نداشتید شما به کتابخانه Adafruit Sensor  نیز نیاز دارید. شما میتوانید کتابخانه ی Adafruit Sensor را از لینک زیر دانلود کنید.

دانلود فایل

 

امتحان کردن :

بر روی “File->Examples->Adafruit_ADXL345->sensortest” کلیک کنید تا نمونه ای اجرایی از این کتابخانه مشاهده کنید.

حال روی compile/upload کلیک کنید تا طرح به آردوینو آپلود شود. شما باید خروجی مشابه زیر را ببینید. برد را حرکت دهید تا تغییرات را ببینید.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

کالیبره کردن:

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

کالیبره کردن خروجی های سنسور را تغییر نمی دهد. اما خروجی سنسور را نسبت به مرجعی که برای آن مشخص کرده اید به شما میدهد.

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

گرانش به عنوان مرجع کالیبرراسیون :

شتاب را می توان در نسبت به گرانش زمین اندازه گیری کرد. جایی که ۱G را نشان میدهد جاذبه در سطح زمین است. گرانش زمین یک نیروی پایدار و یک مرجع کالیبراسیون مناسب و قابل اعتماد است.

روش کالیبراسیون:

برای سنسور کالیبره شده شما باید خروجی را برای هر محور به طور دقیق در جهت محور های گرانش مشخص کنید.

نصب سنسور :

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

اسکن کالیبراسیون را انجام دهید.

بار گیری را به صورت زیر انجام دهید و منتظر بمانید.

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

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

  • این کارکتر اندازه گیری را در این محور انجام میدهد و نتایج را برای ما چاپ میکند.

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

  •  بلوک را بچرخانید تا سمت دیگر آن روی میز قرار بگیرد. یک کارکتر دیگر برای اندازه گیری محور آن تایپ کنید.

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

  • برای تمام شش وجه این تکه چوب این کار را انجام دهید.

نکته: برای وجه ی که سیم ها روی آن است کارکتر را وارد کرده و از سطح زیر میز استفاده کنید.

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

نتایج کالیبراسیون:

هنگامی که تمام شش وجه قطعه چون نمونه برداری شد، مقادیری که در مانیتور چاپ شده اند نشان دهنده ی اندازه ی واقعی برای نیرو های +/-۱G در هر محور است. از این مقادیر میتوان برای دریافت دقت بالاتر استفاده کرد.

طرح کالیبراسیون:

دانلود کد

 

خروجی کالیبراسیون معمولی:

 

دانلود کد

 

ساختار:

Adafruit_ADXL345(int32_t sensorID = -1)

یک  درایور ADXL345 را ایجاد میکند. ‘sensorID’ شناسه ی دستگاه است. در هر فرا خوانی  getEvent() مقدار هر sensor_event باز خواهد گشت. sensorID هیچ تاثیری بر عملکرد سنسور ها ندارد ولی برای مدیریت sensor events در سیستم با سنسور های چند گانه مفید است.

bool begin(void)

تابع begin() مقدار دهی دستگاه را آغاز میکند. اگر در اتصال به ADX:345 موفق شود true را برمی گرداند.

void getSensor(sensor_t*);

 getSensor() اطلاعات اولیه را در مورد سنسور چاپ میکند.

void setRange(range_t range)

تابع setRange() محدوده عملیاتی برای سنسور را تعیین میکند. هر چه محدوده کوچک تر باشد مقادیر دقیق تر خواهند بود.

محدوده ی معتبر برای این سنسور عبارتند از

  • ADXL345_RANGE_16_G
  • ADXL345_RANGE_8_G
  • ADXL345_RANGE_4_G
  • ADXL345_RANGE_2_G (default value)

range_t getRange(void);

 تابع getRange() محدوده ی عملیاتی فعلی که توسط setRange() تعیین شده است return میکند.

در یافت و تنظیم رنج اطلاعات :

void setDataRate(dataRate_t dataRate);

setDataRate()  اندازه تغییرات خروجی را نمایش میدهد.

ارزش بالاتر از ۱۰۰ هرتز موجب نویز میشود. مقدار کمتر از ۶٫۲۵ به تغییرات دما حساس میشود.

جزئیات داده را ببینیم.

  • ADXL345_DATARATE_3200_HZ
  • ADXL345_DATARATE_1600_HZ
  • ADXL345_DATARATE_800_HZ
  • ADXL345_DATARATE_400_HZ
  • ADXL345_DATARATE_200_HZ
  • ADXL345_DATARATE_100_HZ
  • ADXL345_DATARATE_50_HZ
  • ADXL345_DATARATE_25_HZ
  • ADXL345_DATARATE_12_5_HZ
  • ADXL345_DATARATE_6_25HZ
  • ADXL345_DATARATE_3_13_HZ
  • ADXL345_DATARATE_1_56_HZ
  • ADXL345_DATARATE_0_78_HZ
  • ADXL345_DATARATE_0_39_HZ
  • ADXL345_DATARATE_0_20_HZ
  • ADXL345_DATARATE_0_10_HZ (default value)

 

dataRate_t getDataRate(void);

تابع  getDataRate() مقدار داده هایی که توسط setDataRate() تنظیم شده را return میکند.

void getEvent(sensors_event_t*);

تابع getEvent() نتیجه را به صورت یک sensor_event باز میگرداند. sensor_event حاوی sensor_id که به سازنده منتقل شده ، همچنین مقادیری که از محور های X،Y و Z خوانده شده است.

فایل ها :

فایل EagleCAD PCB

دانلود فایل

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

 

آشنایی با شتاب سنج دیجیتال ADXL345 و کالیبره کردن آن

mjavad

    نوشته‌های مرتبط

    دیدگاه‌ها

    *
    *