آموزش راه اندازی ماژول ADXL345 { بخش اول – شناخت ماژول }

مقدمه

در این جلسه قصد داریم سنسور پر کاربرد ADXL345 را راه اندازی کنیم. 

ماژول ADXL345، یک ماژول شتاب سنج MEMS سه محوره است که  توان مصرفی پایین و دقت اندازه گیری بالا ( 13 بیت) داره. خروجی این ماژول 16 بیتی و به صورت مکمل 2 هست. با استفاده از پروتکل های SPI ( به صورت 3 سیمه یا 4 سیمه) و I2C نیز میتوان با این سنسور ارتباط برقرار کرد.

نمایی از یک ماژول ADXL345

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

قطعات مورد نیاز
[post_shop]

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

  • یک عدد ماژول شتاب سنج ADXL345
  • یک برد آردوینو
  • تعدادی سیم jumper 
  • بردبرد

مشخصات ماژول

مشخصات سنسور:

  • محدوده ولتاژ 2 تا 3.6 ولت ( البته در اکثر ماژول ها یک رگولاتور وجود دارد که میتوان با 5 ولت نیز ماژول را راه اندازه کرد. ولی محدوده ولتاژ خود سنسور از 2 تا 3.6 ولت می باشد.)
  • توان مصرفی فوق العاده پایین ( 40 میکروآمپر در حالت اندازه گیری عادی و 0.1 میکروآمپر در حالت Standby (با ولتاژ 2.5 ولت))
  • ارتباط از طریق پروتکل های I2C و SPI (پروتکل SPI را میتوان 3 سیمه و یا 4 سیمه راه اندازی کرد.)
  • قابلیت تشخیص تک ضربه (Single Tap) و دو ضربه همزمان (Double Tap)
  • تشخیص سقوط آزاد (Free Fall detection) ( راستی  آیا شما میدانید شتاب سنج چگونه سقوط آزاد را تشخیص می دهد؟)
  • دارا بودن مدهای Activity و Inactivity برای تشخیص حرکت یا عدم حرکت

اجازه بدید در مورد سه ویژگی آخر کمی توضیح بدیم. 

در مورد single tap و double tap این نکته را میتوانیم بگوییم که اگر به  ماژول یک ضربه یا دو ضربه همزمان وارد شود ، این قابلیت را دارد  که این  یک ضربه و دو ضربه همزمان را تشخیص دهد. با استفاده از مدهای Activity و  Inactivity ، ماژول حرکت و یا عدم حرکت را تشخیص میدهد. در مد سقوط آزاد هم میتوان سقوط آزاد را تشخیص داد. این ماژول این کار را با استفاده از مقایسه شتاب در همه محورها با یک مقدار مشخص ، انجام میدهد. میتوان ماژول را طوری تنظیم کرد که  این ویژگی ها را با استفاده از پین های وقفه به ما نمایش دهد. به عبارت ساده تر از وقفه ها برای متوجه شدن این ویژگی ها استفاده کنیم. همچنین این ماژول دارای یک بافر FIFO هست که میتوان با استفاده از آن داده ها را ذخیره کرد. 

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

این شتاب سنج میتونه شتاب های استاتیکی ( مثل شتاب گرانش g ) و دینامیکی (شتاب ناشی از حرکت) را اندازه گیری کنه. کاربرد شتاب استاتیکی برای اندازه گیری زاویه های شتاب سنج با سه محور مختصات (زاویه tilt یا کجی) است و کاربرد شتاب دینامیکی هم برای تشخیص حرکت و شوک ها است.

کاربرد:

  • گوشی های موبایل
  • ابزارهای پزشکی
  • دستگاه های بازی
  • ابزار دقیق صنعتی
  • هارد دیسک ها

سخت افزارماژول

توضیح پایه های ماژول:

در شکل و جدول زیر ، نام پایه ها و وظیفه هر کدام از آنها آورده شده است : 

پایه های ماژول ADXL345

بستن مدار:

برای ارتباط با ماژول ADXL345 میشه از هر دو پروتکل SPI و I2C استفاده کرد. در هر دو مد کاری ، این ماژول به عنوان یک Slave ، عمل میکنه. 

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

استفاده از پروتکل SPI : 

در ابتدا میخوایم یاد بگیریم که چگونه میتونیم ماژول را با استفاده از پروتکل SPI به برد آردوینو وصل کنیم. نکته ای که وجود داره این هست که میشه این پروتکل را به صورت 3 سیمه یا 4 سیمه به ماژول وصل کرد. 

تذکر: در صورتی که از SPI با 3 سیم استفاده کنیم ، پیشنهاد می شود که پایه SDO با یک مقاومت 10 کیلو Pullup  یا Pull down شود.

در جدول زیر ، سیم بندی مربوط به اتصال ماژول با 4 سیم آورده شده است : 

اتصال ADXL345 به آردوینو با پروتکل SPI

تذکر: حتما به ولتاژ ماژول خود دقت کنید. اکثر ماژول هایی که در ایران وجود دارند ، از ولتاژ 5 ولت استفاده میکنند ولی اگر از ماژولی استفاده می کنید که ولتاژ آن 3.3 ولت هست ، حتما باید تغذیه آن به 3.3 ولت وصل شود. برای این کار میتوانید از یک مبدل ولتاژ استفاده کنید و ولتاژ برد آردوینو را از 5 ولت به 3.3 ولت کاهش دهید و یا از ولتاژ 3.3 ولت روی برد آردوینو استفاده کنید. البته برای بردهای Arduino pro mini که با 3.3 ولت کار میکنند ، نیازی به مبدل ولتاژ وجود ندارد. 

توجه داشته باشید که تغذیه خود سنسور ، 2 ولت تا 3.6 ولت هست ولی بر روی ماژول های آبی رنگی که معمولا در بازار وجود داره یک رگولاتور وجود دارد و به همین علت لازم هست که ما ولتاژ 5 ولت را به ماژول اعمال کنیم. در عکس زیر ، رگولاتوری که بر روی این ماژول وجود دارد ، نشان داده شده است : 

رگولاتور داخلی ماژول ADXL345

ارتباط از طریق پروتکل I2C : 

حالا اجازه بدید که نحوه اتصال ماژول به برد آردوینو را از طریق پروتکل I2C با هم دیگه بررسی کنیم. 

برای این که ماژول وارد مد I2C شود ، لازم است که پایه CS به VCC وصل شود و اگه این پایه رها بشه ، ماژول وارد مد I2C نمی شود و به درستی کار نمیکند.

تذکر : بر روی ماژول دو عدد مقاومت SMD برای ارتباط با پروتکل I2C تعبیه شده است که این دو مقاومت به VCC متصل شده اند.  به همین علت نیازی به استفاده از مقاومت خارجی نمی باشد. مقدار این مقاومت ها 4.7K می باشد. در شکل زیر این دو مقاومت نشان داده شده است : 

مقاومت های Pull up ماژول

در جدول زیر ، پین هایی از ماژول که باید به برد متصل شوند ، آورده شده است : ارتباط با ماژول ADXL345 با پروتکل I2C

 سیم بندی بین برد و ماژول هم در تصویر زیر نشان داده شده است : 

اتصال آردوینو به ADXL345

[/post_shop]

همچنین در جدول زیر ، پین های مربوط به پروتکل I2C در بردهای مختلف نشان داده شده است : 

پایه های پروتکل I2C در بردهای مختلف آردوینو

خوب دوستان. برای این جلسه کافی هست. در جلسه بعد نحوه راه اندازه ماژول را شرح می دهیم و آن را کالیبره میکنیم. مثل همیشه میتونید ما را در تلگرام و یا اینستاگرام دنبال کنید : 

اشتراک گذاری:
مطالب زیر را حتما بخوانید

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