کنترل زاویه سروو موتور با استفاده از روتاری انکودر در STM32

400,000 ریال

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

توضیحات

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

ما قبلاً در سایت نجوه راه اندازی سروو موتور را آموزش داده ایم ، و شما می توانید با مراجعه به لینک زیر این آموزش را مشاهده کنید:

راه اندازی سرو موتور در میکروکنترلر STM32

همان طور که قبلاً اشاره کردایم ، حتی اگر سروو موتورهای استاندارد بین ۱ میلی ثانیه تا ۲ میلی ثانیه عرض پالس کار می کنند ، برخی از موتورها بین ۰٫۵ میلی ثانیه تا ۲٫۵ میلی ثانیه کار می کنند. برای ۰٫۵ میلی ثانیه ، زاویه چرخش ۰ و برای ۲٫۵ میلی ثانیه زاویه به ۱۸۰ تغییر می کند.

ما در مورد سروو متور در ادامه این آموزش صحبت خواهیم کرد ، ابتدا ENCODER را خواهیم گفت:

 

روتاری انکودر

روتاری انکودر یک دستگاه الکترومکانیکی خطی یا دوار است که دارای دو سیگنال خروجی A و B است که هنگام جابجایی دستگاه پالس می دهد. در کنار هم ، سیگنال های A و B هم وقوع و هم جهت حرکت را نشان می دهند.

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

شکل ۱: نمای یک ماژول روتاری انکودر

 

در تصویر بالا ، CLK و DT دو سیگنال خروجی هستند که من در مورد آنها صحبت کردم. اینها به عنوان سیگنال A و B از انکودر در نظر گرفته می شوند. برای توضیح واضح تر ، در زیر GIF از صفحه ویکی پدیا آمده است.

 

شکل ۲: نحوه عملکرد روتاری انکودر

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

https://upload.wikimedia.org/wikipedia/commons/1/1e/Incremental_directional_encoder.gif

 

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

حالا وقتی محور را در جهت عقربه های ساعت حرکت می دهیم ، A به LOW می رود و پس از مدتی ، Pin B به LOW می رود.

و هنگامی که شفت در جهت CCK حرکت می کند ، ابتدا پین B پایین می آید و سپس پین A.

این صف حرکتی ماست که به طور مداوم این پین ها را بررسی می کنیم و بر اساس آن ابتدا LOW می شود ، سپس تصمیم می گیریم که جهش به سمت CK یا CCK .

شکل ۳: نتیجه حرکت CK

 

در تصویر بالا نتیجه حرکت CK است. در اینجا می بینیم که ابتدا پین A به LOW می رود و بعداً پین B .

به طور مشابه تصویر زیر حرکت CCK محور را نشان می دهد:

شکل ۴: نتیجه حرکت CCK

 

همان طور که در طول حرکت CCK انتظار می رفت ، ابتدا B پایین می رود و سپس پین A .


سروو موتور

اکنون ما Encoder را با Servo Motor ادغام می کنیم. همان طور که قبلاً اشاره کردم ، سرووی من بین ۰٫۵ میلی ثانیه تا ۲٫۵ میلی ثانیه عرض پالس کار می کند. این بدان معناست که سروو زاویه ۱۸۰ درجه را در ۲ میلی ثانیه اختلاف پالس پوشش می دهد.

ما می توانیم از این مورد برای محاسبه عرض پالس مورد نیاز برای هر ۱ درجه افزایش زاویه استفاده کنیم. سعی کرده ام در تصویر زیر توضیح دهم:

شکل ۵: نحوه محاسبه عرض پالس مورد نیاز برای هر ۱ درجه



مدت ویدئو: ۱۰ دقیقه

نوع آموزش: فارسی 

کد سورس: دارد

شماتیک مدار: ندارد

تست روی سخت افزار: دارد

کامپایلر: STM32Cube IDE

کتابخانه: HAL Library


توجه: برای پخش ویدئو نرم افزار های KMPlayer و K-Lite Codec Pack در سیستم شما نصب باشد. و از نرم افزار ۷zip برای خارج کردن پروژه از حالت فشرده استفاده کنید.