فهرست مطالب:

آردوینو: Precision Lib برای موتور پله ای: 19 پله
آردوینو: Precision Lib برای موتور پله ای: 19 پله

تصویری: آردوینو: Precision Lib برای موتور پله ای: 19 پله

تصویری: آردوینو: Precision Lib برای موتور پله ای: 19 پله
تصویری: Arduino Stepper Motor - 28byj-48 #steppermotor #arduino 2024, نوامبر
Anonim
Image
Image
متغیرهای جهانی
متغیرهای جهانی

امروز ، من کتابخانه ای را برای راننده موتور تمام قدم با سوئیچ های محدود و حرکت موتور با شتاب و میکرو گام به شما نشان خواهم داد. این Lib که بر روی Arduino Uno و Arduino Mega کار می کند ، به شما امکان می دهد موتورها را نه تنها بر اساس تعداد مراحل ، بلکه بر اساس میلی متر نیز حرکت دهید. و همچنین بسیار دقیق است

یکی از ویژگیهای مهم این کتابخانه این است که به شما امکان می دهد دستگاه CNC خود را بسازید ، که لزوماً فقط X ، Y نیست ، بلکه یک سوئیچ بخش نیز است ، به عنوان مثال ، زیرا GRBL آماده نیست ، بلکه برنامه نویسی است. به شما امکان می دهد ماشین ایده آل را برای خود بسازید.

با این حال ، عبارت زیر جزئیات مهمی است! این ویدیو فقط برای کسانی است که قبلاً به برنامه نویسی عادت کرده اند. اگر با برنامه نویسی آردوینو آشنایی ندارید ، ابتدا باید سایر ویدیوهای مقدماتی دیگر را در کانال من مشاهده کنید. این به این دلیل است که من در این ویدیوی خاص در مورد یک موضوع پیشرفته بحث می کنم و جزئیات بیشتر Lib مورد استفاده در ویدئو را توضیح می دهم: Step Motor with Acceleration and End of Stroke.

مرحله 1: کتابخانه StepDriver

این کتابخانه سه نوع رایج ترین درایور موجود در بازار را پوشش می دهد: A4988 ، DRV8825 و TB6600. این پین درایورها را پیکربندی می کند و به آنها امکان تنظیم مجدد و قرار دادن در حالت Sleep را می دهد و همچنین خروجی های موتور را که روی پین Enable کار می کند فعال و غیرفعال می کند. همچنین ورودی پین های خرد مرحله راننده را تنظیم می کند و سوئیچ ها و سطح فعال سازی آنها (بالا یا پایین) را محدود می کند. همچنین دارای کد حرکت موتور با شتاب پیوسته در میلی متر بر ثانیه ، حداکثر سرعت در میلی متر بر ثانیه و حداقل سرعت در میلی متر بر ثانیه است.

برای کسانی که قسمت های 1 و 2 فیلم Step Motor with Acceleration و End of Stroke را تماشا کردند ، این کتابخانه جدید موجود را امروز بارگیری کنید ، زیرا برای سهولت استفاده از آن ، در آن فایل اول تغییراتی ایجاد کردم.

مرحله 2: متغیرهای جهانی

من دقیقاً نشان می دهم که هر یک از متغیرهای جهانی برای چیست.

مرحله 3: عملکردها - تنظیم پین های درایور

توابع - تنظیم پین های درایور
توابع - تنظیم پین های درایور

در اینجا ، برخی از روش ها را شرح می دهم.

تنظیمات Pinout و پین های آردوینو را به عنوان خروجی تنظیم کردم.

مرحله 4: توابع - عملکردهای اصلی درایور

توابع - عملکردهای اصلی درایور
توابع - عملکردهای اصلی درایور

در این قسمت ، ما با پیکربندی درایور و عملکردهای اساسی آن کار می کنیم.

مرحله 5: توابع - تنظیم مرحله موتور

توابع - تنظیم مرحله موتور
توابع - تنظیم مرحله موتور
توابع - تنظیم مرحله موتور
توابع - تنظیم مرحله موتور

در این مرحله از کد ، مقدار مراحل در میلی متر را که موتور باید انجام دهد پیکربندی می کنیم.

مرحله 6: عملکردها - تنظیم حالت مرحله موتور

توابع - تنظیم حالت مرحله موتور
توابع - تنظیم حالت مرحله موتور
توابع - تنظیم حالت مرحله موتور
توابع - تنظیم حالت مرحله موتور
توابع - تنظیم حالت مرحله موتور
توابع - تنظیم حالت مرحله موتور

این جدول تنظیمات حالت گام موتور را نشان می دهد. در اینجا چند نمونه آورده شده است.

مرحله 7: توابع - تنظیم سوئیچ های محدود

توابع - تنظیم سوئیچ های محدود
توابع - تنظیم سوئیچ های محدود

در اینجا ، من باید کل و مقادیر بولی را بخوانم. لازم است تنظیم کنید که آیا کلید فعال بالا یا پایین است ، در حالی که حداکثر و حداقل حد پایانی را تنظیم می کنید.

مرحله 8: توابع - خواندن کلیدهای محدود

توابع - خواندن سوئیچ های محدود
توابع - خواندن سوئیچ های محدود
توابع - خواندن سوئیچ های محدود
توابع - خواندن سوئیچ های محدود
توابع - خواندن سوئیچ های محدود
توابع - خواندن سوئیچ های محدود

این قسمت با قسمت موجود در Lib که هفته گذشته در دسترس قرار دادم متفاوت است. چرا تغییرش دادم؟ خوب ، من eRead را برای جایگزینی برخی دیگر ایجاد کردم. در اینجا ، eRead LVL ، digitalRead (پین) را می خواند و TRUE را برمی گرداند. همه اینها باید در بالا انجام شود. کارهای زیر با کلید فعال در سطح پایینی خواهد بود. در اینجا از آن برای نشان دادن جدول "حقیقت" استفاده می کنم.

در تصویر کد ، یک نمودار قرار دادم که به شما کمک می کند درک کنید که در این قسمت از کد منبع ، من به سمت صعود حرکت می کنم و هنوز کلید پایان دوره را نزده ام.

اکنون ، در این تصویر سیستم عامل کد bool DRV8825 ، موتور را نشان می دهم که همچنان در جهت رو به رشد حرکت می کند. با این حال ، سوئیچ حداکثر محدود فعال شد. بنابراین ، مکانیسم باید حرکت را متوقف کند.

در نهایت ، من همان حرکت را نشان می دهم ، اما در جهت مخالف.

در اینجا ، شما در حال حاضر کلید پایان دوره را فعال کرده اید.

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

توابع - راه اندازی حرکت
توابع - راه اندازی حرکت

اصلی ترین کاربرد روش motionConfig تبدیل میلی متر در ثانیه (اندازه گیری مورد استفاده در ماشین های CNC) به پله است تا بتواند کنترل کننده یک موتور پله ای را برآورده کند. بنابراین ، در این قسمت است که من متغیرها را برای درک مراحل و نه میلی متر مثال می زنم.

مرحله 10: توابع - تابع حرکت

توابع - عملکرد حرکت
توابع - عملکرد حرکت

در این مرحله ، ما فرمانی را که یک گام در جهت مطلوب در یک دوره در میکرو ثانیه حرکت می کند ، درمان می کنیم. ما همچنین پین جهت راننده ، زمان تأخیر و جهت سوئیچ های محدود را تنظیم می کنیم.

مرحله 11: توابع - عملکرد حرکت - متغیرها

توابع - عملکرد حرکت - متغیرها
توابع - عملکرد حرکت - متغیرها

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

مرحله 12: توابع - عملکرد حرکت - شتاب

توابع - عملکرد حرکت - شتاب
توابع - عملکرد حرکت - شتاب
توابع - عملکرد حرکت - شتاب
توابع - عملکرد حرکت - شتاب

در اینجا ، من برخی از جزئیات را در مورد چگونگی رسیدن به داده های شتاب ، که از طریق معادله Torricelli محاسبه شده است ، ارائه می دهم ، زیرا این امر فضاهای لازم برای کار شتاب را در نظر می گیرد و نه زمان. اما ، در اینجا مهم است که درک کنیم که کل این معادله فقط در مورد یک خط کد است.

ما ذوزنقه ای را در تصویر بالا شناسایی کردیم ، زیرا دورهای دور اولیه برای اکثر موتورهای پله ای بد هستند. در مورد کاهش سرعت نیز همین اتفاق می افتد. به همین دلیل ، ما یک ذوزنقه را در فاصله بین شتاب و کاهش تصور می کنیم.

مرحله 13: توابع - عملکرد حرکت - سرعت پیوسته

توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته

در اینجا تعداد مراحل استفاده شده در شتاب را حفظ می کنیم ، با سرعت پیوسته ادامه می دهیم و با حداکثر سرعت که در تصویر زیر قابل مشاهده است ، ادامه می دهیم.

مرحله 14: توابع - عملکرد حرکت - کاهش سرعت

توابع - عملکرد حرکت - کاهش سرعت
توابع - عملکرد حرکت - کاهش سرعت
توابع - عملکرد حرکت - کاهش سرعت
توابع - عملکرد حرکت - کاهش سرعت

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

مرحله 15: توابع - عملکرد حرکت - سرعت پیوسته

توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته
توابع - عملکرد حرکت - سرعت پیوسته

ما به سرعت پیوسته باز می گردیم تا نیمه دوم مسیر را کار کنیم ، همانطور که در زیر مشاهده می کنید.

مرحله 16: توابع - حرکت عملکرد - حرکت نوبت ها

توابع - حرکت عملکرد - حرکت دور
توابع - حرکت عملکرد - حرکت دور

در این قسمت ، موتور را در تعداد مشخصی از دورها در جهت مورد نظر حرکت می دهیم و تعداد دورها را به میلی متر تبدیل می کنیم. در نهایت ، موتور را در جهت خواسته شده حرکت می دهیم.

مرحله 17: نمودار حرکت - سرعت موقعیت

نمودار حرکت - سرعت موقعیت
نمودار حرکت - سرعت موقعیت

در این نمودار ، من داده هایی دارم که از معادله ای که در قسمت Acceleration استفاده کردیم استخراج شده است. من مقادیر را در نظر گرفتم و در سریال آردوینو بازی کردم ، و از این به Excel رفتم ، که منجر به این جدول شد. این جدول پیشرفت مرحله را نشان می دهد.

مرحله 18: نمودار حرکت - موقعیت در مقابل موقعیت

نمودار حرکت - موقعیت در مقابل موقعیت
نمودار حرکت - موقعیت در مقابل موقعیت

در اینجا ، ما موقعیت را به صورت گام به گام و سرعت می گیریم و آن را به نقطه در میکرو ثانیه تبدیل می کنیم. در این مرحله توجه می کنیم که دوره با سرعت نسبت عکس دارد.

مرحله 19: نمودار حرکت - سرعت در مقابل لحظه

حرکت حرکت - سرعت در مقابل لحظه
حرکت حرکت - سرعت در مقابل لحظه

سرانجام ، ما سرعت را به عنوان تابعی از لحظه داریم ، و به همین دلیل ، ما یک خط مستقیم داریم ، زیرا این سرعت به عنوان تابعی از زمان است.

توصیه شده: