شتابسنج دستگاهی است که مقدار شتاب صحیح را اندازهگیری میکند. برای ساخت مدار تراز سنج یا تراز دیجیتالی به ماژول شتاب سنج نیاز داریم. شتاب صحیح شتاب نسبت به جسم در حال سقوط آزاد است. شتابسنج دارای مدلهای یکمحوری و چندمحوری است که میتوانند اندازه و جهت شتاب را بهعنوان یک کمیتِ بُرداری اندازهگیری کند. میتوان از حسگرهای شتابسنج برای تعیین موقعیت و آشکارسازی لرزش و ضربه استفاده کرد. در ادامه این آموزش با شیوه ساخت تراز سنج دیجیتالی با برد آردوینو و ماژول شتاب ADXL345 با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
ماژول شتاب سنج ۳ محوره ADXL345
ماژول ADXL345 قادر است رنج ±۲g الی ±۱۶g را با مقادیر پیش فرض ۲و ۴ و ۸ و ۱۶ با رزولوشن بالای ۱۳ بیت اندازه گیری کند. ماژول ADXL345 قادر است شتاب استاتیک و شتاب داینامیک را اندازه گیری کند. منظور از شتاب استاتیک گرانش در کاربردهایی مثل اندازه گیری زاویه کجی و شتاب داینامیک حاصل از تکان یا حرکت ناگهانی میباشد. این سنسور مجهز به ساختار هوشمند مدیریت مصرف توان است که متناسب با اعمال شتاب به سنسور عمل میکند. نهایتاً باعث اتلاف کمترین توان روی چیپ خواهد شد.
فراخوانی کتابخانه Adafruit_ADXL345
برای برنامه نویسی از دو کتابخانه Adafruit_Sensor و Adafruit_ADXL345 همچنین برای ارتباط I2C از کتابخانه Wire استفاده میکنیم. در صورتیکه نحوه ی فراخوانی کتابخانه را نمیدانید، آموزش فراخوانی کتابخانه در نرم افزار آردوینو Arduino را مطالعه نمایید. اگر هم شیوه نصب و راه اندازی نرم افزار آردوینو را نمیدانید. به آموزش کار با برد آردوینو و نصب نرم افزار آردوینو Arduino IDE مراجعه کنید.
ماژول دات ماتریس تراشه MAX7219
این ماژول دارای ۸*۸ نقطه نورانی قابل کنترل میباشد و دارای ۳ کانال ارتباطی دیتا و دو کانال ارتباطی تغذیه میباشد. با استفاده از پروتکل ارتباطی SPI ارتباط بین ماژول و آردوینو فراهم میشود. برای برنامه نویسی از کتابخانه LedControl استفاده میکنیم. پیش از این در پست آموزش ساخت تابلو روان با برد آردوینو توسط همکارم راجع به این ماژول توضیح داده شده است. پیشنهاد میکنم جهت دریافت اطلاعات بیشتر مطالعه بفرمایید.
اتصالات مدار تراز سنج
پس از اتصالات تغذیه مدار و ماژولها، پینهای ۱۰، ۱۱، ۱۲ را به ترتیب به پینهای CS, CLK, DIN ماژول MAX7219 و پینهای A4 (SDA), A5 (SCL) را به پین های SDA و SCL ماژول ADXL345 متصل میکنیم. برای تغذیه هم از همان پورت USB برد آردوینو نانو Nano استفاده میکنیم.
کدهای مدار ترازسنج با آردوینو
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
تحلیل کد آردوینو
این کد یک پروژه Arduino است که از دو ماژول استفاده میکند: ADXL345 به عنوان یک شتابسنج و MAX7219 به عنوان یک نمایشگر دات ماتریکس LED. پروژه شتابسنج را استفاده میکند تا زاویه شیب را اندازهگیری کرده و سپس نمایشگر LED را بر اساس زاویه شیب فعلی روشن میکند. دقت کنید که کتابخانههای Adafruit_ADXL345 و LedControl در کد استفاده شدهاند.در ابتدا کتابخانهها به کد اضافه شدهاند. این کتابخانهها برای کنترل ماژولهای ADXL345 و MAX7219 استفاده میشوند. همچنین کتابخانههای مورد نیاز برای کامپایل کد از طریق اینکلودها فراخوانی شدهاند.ماژولهای ADXL345 و MAX7219 با استفاده از اشیاء accel و lc تعریف شدهاند.سپس توابع a() تا g() تعریف شدهاند که هرکدام نمایش یک نماده (شکل هندسی) را بر روی نمایشگر LED دات ماتریکس نشان میدهند. این نمادهها برای نمایش زاویه شیب مورد استفاده قرار میگیرند.در تابع setup()، تنظیمات اولیه برای نمایشگر LED و ماژول ADXL345 انجام میشود. نمایشگر LED را روشن میکند، شدت نور آن را تنظیم میکند و تمام پیکسلهای آن را خاموش میکند. همچنین ماژول ADXL345 را مقداردهی اولیه میکند و محدوده اندازهگیری را به ۱۶ گرم تنظیم میکند.در تابع loop()، دادههای شتابسنج از ماژول ADXL345 دریافت میشود و مقدار شیب (زاویه) به عنوان zdeg محاسبه میشود. سپس با استفاده از توابع a() تا g()، نمایشگر LED بر اساس مقدار zdeg روشن میشود. هر تابع نمادهای را نمایش میدهد که به میزان مشخصی از مقدار zdeg وابسته است.در نهایت با استفاده از delay(100)، کد تاخیر ۱۰۰ میلیثانیه دارد تا خواندن دادههای شتابسنج و تغییر نمایشگر LED به تدریج انجام شود.این پروژه یک نمونه ساده از استفاده از سنسور شتابسنج برای نمایش اطلاعات روی یک نمایشگر LED دات ماتریکس است و میتوانید آن را برای تجربه و آزمایش خودتان تغییر دهید و بهبود ببخشید.
وسایل مورد نیاز
ماژول دات ماتریس ۸×۸ با تراشه MAX7219
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه
طی چند قسمت قبلی که طرح پروژه را پیاده سازی کردیم، با استقبال شما کاربران مواجه شدیم. در این سری برای اینکه گستره بیشتری از افراد بتوانند فرصت استفاده از بن خرید را داشته باشند؛ روال دیگری را در پیش گرفتیم. در این روش تصمیم گرفتهایم به ۱۰ نفر از کاربران بن خرید ارایه شود. برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و بسته به خلاقیت، مدار جدیدی ایجاد کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام . تراز لیزری از همین سنسور استفاده میکنه؟
سلام
خیر تراز لیزری با لیزر کار میکند
سلام
برنامه ای کپی کردم داخل نرم افزار آردینو اما از دستورadxl345 خطا میگیره علت چی میتونه باشه؟؟؟
سلام
مشکل از کتابخونه های Adafruit_Sensor و Adafruit_ADXL345 هستش.
سلام خسته نباشید
سوالی داشتم اونم اینک ایا این کار را با برد نانو میتوان پیاده سازی کرد؟؟
سلام
بله تفاوتی بین ساختار کلی نانو و پرو میکرو نیست
خسته نباشید
من فقط و فقط نیاز به کد همین پروژه دارم و باقی مطالب سایت رو لازم ندارم ایا امکانش هست بدون تهیه اکانت با قیمت کمتری کد رو فقط دریافت کنم؟؟ خیلی نیازمه.. باتشکر
با سلام
از توجه شما ممنونم، در حال حاضر فقط میتوانید اشتراک یک ماهه تهیه بفرمایید.
اقا اینو ما کدشو زدیم اتصالاتشم وصل کردیم
همه چی اوکیه ولی کار نمیده !
اینه که شما یه لطفی بکنین اتصالات مدار رو با برد نانو بهمون بدین تا وصل کنیم چون برد ما نانوعه و پرومیکرو نیست!
ساختار کلی پرو میکرو و نانو شبیه به هم هستند و تفاوتی با هم ندارند.