راه‌اندازی ماژول شتاب سنج با STM32 | قسمت سی‌ام آموزش STM32 با توابع LL

blog
۱۴۰۱-۰۵-۰۸
4 دقیقه

در قسمت قبلی راه‌اندازی تایمر نگهبان پنجره‌ای (WWDG) را آموختیم و در این قسمت می‌خواهیم راه‌اندازی ماژول شتاب سنج و ژیروسکوپ LSM6DS3 را بررسی کنیم. ماژول LSM6DS3 یک ماژول چندکاره است که درگوشی‌های هوشمند نیز به‌کار می‌رود و امکان Tilt یا چرخش صفحه و دیگر قابلیت‌های مرتبط با حرکت و چرخش (ازجمله شمارش قدم) را به دستگاه می‌دهد. LSM6DS3 امکان مدیریت 6 سنسور و ذخیره اطلاعات آن‌ها را فراهم می‌کند. این ماژول دارای 8 Kbyte حافظه FIFO، رابط I2C و SPI، یک ژیروسکوپ، یک شتاب سنج و یک دماسنج داخلی است.

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

 

ایجاد پروژه

همان‌طور که گفته شد ما در اینجا برای ارتباط با ماژول شتاب سنج از رابط SPI استفاده می‌کنیم. پس در تنظیمات پروژه، پس از تنظیم دیباگ و کلاک، واحد SPI1 را فعال می‌کنیم و روی حالت Full-Duplex Master تنظیم می‌کنیم:

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

 

نوشتن کد پروژه

در این پروژه برای جلوگیری از سردرگمی و شلوغ شدن فایل اصلی برنامه، مثل بخش LCD فایل کتابخانه بانام‌های LSM6DS3.h و LSM6DS3.c می‌سازیم و مانند همان پروژه به فایل‌های برنامه اضافه می‌کنیم. کدهای مربوط به ریدایرکت را نیز کپی می‌کنیم و تنظیمات آن را انجام می‌دهیم. حالا باید کتابخانه‌های موردنیاز را در LSM6DS3.h اضافه کنیم، آدرس رجیسترهای مورداستفاده را در دیتاشیت پیداکرده و بنویسیم و همچنین توابعی که می‌خواهیم تعریف کنیم را در اینجا اعلان کنیم:

اکنون نوبت فایل LSM6DS3.c است. در این فایل متغیرهای مورد نیاز را تعریف می‌کنیم و رجیسترهای کنترل شتاب سنج و ژیروسکوپ را با توجه به دیتاشیت مقداردهی می‌کنیم. همچنین باید توابع موردنیاز برای خواندن و چاپ خروجی ماژول را بنویسیم:

تابع مربوط به ارسال و دریافت داده توسط SPI:

تابع نوشتن داده در رجیسترهای ماژول:

تابع خواندن داده 1 یا 2 بایتی از رجیسترهای ماژول:

تابع محاسبه مقدار کالیبره خروجی شتاب سنج:

توابع خواندن و کالیبره کردن پارامترهای x،y و z مربوط به‌شتاب سنج:

تابع محاسیه مقدار کالیبره خروجی ژیروسکوپ:

توابع خواندن و کالیبره کردن پارامترهای x،y و z مربوط به ژیروسکوپ:

تنظیم اولیه‌ی ماژول، رجیستر شناسایی ماژول در این تابع خوانده می‌شود و شتاب سنج و ژیروسکوپ فعال می‌شوند:

تابع چاپ مقادیر کالیبره شده‌ی شتاب سنج:

تابع چاپ مقادیر کالیبره شده‌ی ژیروسکوپ:

پس از تکمیل این فایل، به سراغ main.c رفته و LSM6DS3.h را به آن اضافه می‌کنیم. سپس واحد SPI را فعال می‌کنیم و ماژول را با تابع نوشته‌شده تنظیم می‌کنیم:

در آخر نیز در حلقه while(1) توابع مربوط به چاپ خروجی ماژول را صدا می‌زنیم:

اگر تمامی مراحل به‌درستی انجام‌شده باشد، و اتصالات پایه‌های VDD(3V3), GND, SCL, SDA, CS, SA0 به طرز صحیح به پایه‌های متناظر آن‌ها در میکرو یعنی 3V3, GND, SPI1_SCK, SPI1_MOSI, PC0, SPI1_MISO صورت گرفته باشد، می‌بینیم که مقادیر شتاب اندازه‌گیری شده و تغییرات زاویه روی ترمینال سریال نمایش داده می‌شود؛

 

لینک این پروژه در گیت‌هاب

اطلاعات
0
0
لینک و اشتراک
profile

سیاوش

متخصص الکترونیک

کارشناس ارشد الکترونیک دیجیتال، علاقه‌مند به یادگیری

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله