راه اندازی انکودر موتور

راه اندازی انکودر موتور-قسمت دوم

انکودر نوری

 راه اندازی انکودر موتور – قمست دوم

بسم الله

در مورد انواع انکودرها، کاربرد و چگونگی عملکر آنها در قسمت پیشین این آموزش (راه اندازی انکودر موتور) به تفضیل بحث شد. در قسمت دوم از این آموزش میخواهیم به پیاده سازی عملی راه اندازی انکودر موتور توسط ARM LPC1788 بپردازیم. در قسمت قبل دو دسته بندی برای روشهای خواندن و کار با انکودر (encoder) ارائه شد.

  • روش ساده : خواندن پایه انکودر و شمردن به ازای هر بار صفر و یک شدن پایه
  • روش اصولی : استفاده از کانتر برای شمارش اتوماتیک پالس ها بدون درگیرشدن پروسسور
LPC1788 - ARM CORTEX-M3

LPC1788 – ARM CORTEX-M3

حال میخواهیم به روش اصولی که استفاده از کانتر (counter) میکر.کنترلر است، خواندن مقادیر انکودر را انجام و مسافت طی شده توسط ربات متحرک را محاسبه کنیم.

 

کانتر میکرو کنترلر میتواند برحسب تنظیم به ازای هر لبه بالا یا پایین رونده یک عدد بشمرد. صرفا جهت یادآوری این لبه ها از همان لبه پالس های تولیدی توسط انکودر نوری میباشد. با توجه به اینکه انکودر مورد استفاده در این پروژه به ازای یک دور کامل موتور 200 پالس تولید میکنند، پس با دیدن هر 200 لبه پایین رونده میتوانیم مطمئن باشیم موتور یک دور کامل زده است. از طرف دیگر محیط چرخ ربات ما 10 سانتی متر است یعنی با چرخش یک دور کامل موتور (چرخ) ربات 10 سانتی متر حرکت کرده است. پس میتوانیم بگوییم با گرفتن هر 200 پالس انکودر ربات 10 سانتی متر حرکت کرده است.

 

میکروی LPC1788 دارای 4 کانتر(تایمر) است که میتوان به انتخاب، از هرکدام استفاده کرد که ما در اینجا از کانتر صفر استفاده میکنیم.

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

 

تنظیم رجیسترهای کانتر

تنظیم رجیسترهای کانتر

 

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

  1. رجیستر PR تعیین کننده اینست که به ازای چند لبه کانتر یک عدد بالا برود.
  2. رجیستر CTCT برای انتخاب لبه پایین رونده پالس به عنوان معیار شمارش و تعیین کننده شماره پایه ورودی کانتر است.
  3. رجیستر TCR برای راه اندازی (start) کانتر مورد استفاده قرار گرفته است.

با تنظیمات بالا با هر بار لبه پایین رونده مقدار عدد کانتر یکی اضافه میشود و این مقدار را میتوان مشابه زیر از رجیستر TC کانتر خواند. با دانستن تعداد پالس انکودر در هر دقیقه (200 پالس) و محیط چرخ (10 سانتی متر) میتوان مسافت طی شده را محاسبه نمود.

محاسبه مسافت

محاسبه مسافت

 

جهت یادگیری بهتر، کد پروژه از انتهای مطلب قابل دانلود میباشد. در کد ذکر شده برای تست بجای شمارش پالس های انکودر از واحد PWM برای تولید پالس استفاده شده است که در ذات کاری تفاوتی ایجاد نمی کند. میزان اندازه گیری شده مسافت در داخل پورت سریال UART نمایش داده میشود.

دانلود کد پروژه خواندن انکودر

 

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *