موتورها در انواع مختلفی در دسترس هستند و مهمترین سوال همواره این بوده که برای کاری که میخواهم انجام دهم، کدام یک مناسب است. دراین آموزش، من یکی از این موتورها از دسته استپرها را بررسی میکنم و به این پرسش پاسخ خواهم داد که چه هنگام استفاده از این موتورها جایگزین مناسبی نسبت به انواع دیگر موتورهاست. همچنین خواهیم آموخت که چگونه این موتور را با استفاده از سادهترین ماژولهای موجود یعنی ماژول درایور موتور A3967 درایو کنیم. در ادامه با وب سایت مرجع آردوینو دیجی اسپارک همراه باشید.
استپر موتور چیست؟
استپر موتور (Stepper Motor) یک نوع موتور الکتریکی است که به صورت دیجیتالی کار میکند. در برخلاف موتورهای سری و موتورهای جریان مستمر که به صورت آنالوگ کنترل میشوند، استپر موتور به صورت دیجیتال با استفاده از سیگنالهای پالسی کنترل میشود.استپر موتورها از چندین قطب مغناطیسی تشکیل شدهاند که در اطراف آنها پیچهای موتور قرار دارند. با اعمال سیگنالهای پالسی به پیچها، قطبها به صورت پیوسته جابجا میشوند و به این ترتیب میتوان کاربرد خاصی را برای استپر موتور مشخص کرد.استپر موتورها دارای دقت بالا و قابلیت تحرک در زوایای مشخص (مانند ۹۰ درجه) هستند. آنها در برنامههایی که نیاز به کنترل دقیق حرکت و موقعیت دارند، مورد استفاده قرار میگیرند. به عنوان مثال، در ماشینهای CNC، روباتیک، پرینترها، دستگاههای پزشکی و سایر دستگاهها و سیستمهایی که نیاز به کنترل دقیق حرکت دارند، استپر موتورها مورد استفاده قرار میگیرند.استپر موتورها دارای دو نوع اصلی هستند: استپر موتورهای یک فازه و استپر موتورهای چند فازه.استپر موتور یک فازه (Single-Phase Stepper Motor): در این نوع موتور، دو پیچ قرار داده میشود که به صورت فازهای A و B شناخته میشوند. با اعمال سیگنالهای پالسی به فازها، قطبها به صورت پیوسته میچرخند. استپر موتور یک فازه برای کاربردهای ساده و کمتر دقیق مناسب است.استپر موتور چند فازه (Multi-Phase Stepper Motor): در این نوع موتور، علاوه بر فازهای A و B، فازهای دیگری نیز وجود دارند، مانند فاز C و D. استپر موتور چند فازه دقت بالاتری نسبت به نوع یک فازه دارد و برای کاربردهایی که نیاز به حرکت دقیق و قدرت بیشتر است، مناسب است.از مزایای استپر موتورها میتوان به دقت بالا، قابلیت حرکت در زوایا و موقعیتهای دقیق، قابلیت نگهداری موقعیت بدون نیاز به نیروی خارجی (قفل موقعیت)، عملکرد ساده و معماری ساده آنها اشاره کرد. همچنین، استپر موتورها قابلیت کنترل سرعت و جهت چرخش را نیز دارند.به طور کلی، استپر موتورها به علت خصوصیات فوق در برنامههایی مورد استفاده قرار میگیرند که نیاز به حرکت دقیق، کنترل پویا و قابلیت تحمل بارهای مختلف دارند.
استپر موتور چگونه کار میکند؟
استپر موتورها براساس تغییر قطبهای مغناطیسی داخلی خود حرکت میکنند. این قطبها به صورت مغناطیسی در اطراف پیچهای موتور قرار دارند و با اعمال سیگنالهای پالسی به پیچها، قطبها به صورت پیوسته جابجا میشوند.استپر موتورها دارای سه بخش اصلی هستند:
- استاتور (Stator): استاتور قسمت ثابت موتور است و شامل یک یا چند قطب مغناطیسی است. هر قطب دارای قطب شمالی (N) و قطب جنوبی (S) است. استاتور به صورت استوانهای طراحی شده است.
- روتور (Rotor): روتور قسمت متحرک موتور است و شامل قطبهای مغناطیسی است که به پیچهای موتور متصل شدهاند. روتور نیز به صورت استوانهای طراحی شده است و در داخل استاتور قرار میگیرد.
- پیچهای موتور (Motor Windings): پیچهای موتور در اطراف روتور قرار دارند و به قطبهای مغناطیسی روتور متصل میشوند. با اعمال سیگنالهای پالسی به پیچها، جریان الکتریکی در آنها ایجاد میشود و قطبهای مغناطیسی روتور به صورت پیوسته جابجا میشوند.
وقتی سیگنال پالسی به پیچهای موتور اعمال میشود، جریان الکتریکی در پیچها ایجاد میشود که باعث تولید قوت مغناطیسی موتور میشود. قوت مغناطیسی تولید شده باعث جابجایی قطبهای مغناطیسی روتور میشود. هر بار که یک پالس الکتریکی اعمال میشود، روتور یک گام (Step) مشخص انجام میدهد. تعداد پالسها و جریان الکتریکی که به پیچها اعمال میشود، تعیین کننده حرکت و موقعیت روتور استپر موتور است. با تغییر ترتیب و تعداد پالسها، میتوان موتور را به جلو و عقب حرکت داد و در زوایا و موقعیتهای مختلف قرار داد.استپر موتورها معمولاً با استفاده از الکترونیکی به نام درایور استپر موتور (Stepper Motor Driver) کنترل میشوند. درایور استپر موتور وظیفه تبدیل سیگنالهای کنترلی (مانند سیگنالهای پالسی) به جریان و ولتاژ مناسب برای پیچهای موتور را دارد.با ارسال سیگنالهای پالسی به پیچها، روتور به تعداد گامهای تعیین شده جابجا میشود. به عنوان مثال، در یک استپر موتور ۲۰۰ گامی، با ارسال ۲۰۰ پالس، روتور یک دور کامل (۳۶۰ درجه) حرکت میکند. با ارسال پالسها به ترتیب و تعداد صحیح، میتوان موتور را به زوایا و موقعیتهای مورد نظر منتقل کرد.استپر موتورها به دلیل دقت بالا، تحرک قطعههای پیچیده و کنترل موقعیت دقیق، در بسیاری از برنامهها مورد استفاده قرار میگیرند. این برنامهها شامل رباتیک، دستگاههای CNC، چاپ سه بعدی، دستگاههای پزشکی، ماشینآلات صنعتی، دستگاههای اتوماسیون و بسیاری دیگر هستند.
تفاوت اصلی استپ موتور با سروو موتور
تفاوت اصلی بین استپر موتور و سروموتور (سروو موتور) در روش کنترل و عملکرد آنها است. در حالی که استپر موتورها به صورت دیجیتال با سیگنالهای پالسی کنترل میشوند، سروموتورها به صورت آنالوگ و با استفاده از بازخورد موقعیت کنترل میشوند. در ادامه، تفاوتهای اصلی بین این دو نوع موتور را بررسی میکنیم:
روش کنترل: استپر موتورها با استفاده از سیگنالهای پالسی کنترل میشوند. با ارسال پالسها به تعداد و ترتیب صحیح، میتوان موتور را به موقعیت دقیق خاصی حرکت داد. در مقابل، سروموتورها با استفاده از بازخورد موقعیت (مانند انکودر) به صورت آنالوگ کنترل میشوند. بازخورد موقعیت به کنترلر میگوید که موتور در چه موقعیتی قرار دارد و کنترلر بر اساس این اطلاعات، سیگنالهای کنترلی را تنظیم میکند تا موتور را در موقعیت مطلوب نگه دارد.
دقت: استپر موتورها دارای دقت بالایی هستند و میتوانند به زوایا و موقعیتهای دقیق حرکت کنند. با استفاده از تعداد و ترتیب صحیح پالسها، میتوان دقت بالایی در حرکت را به دست آورد. در مقابل، سروموتورها دارای دقت بسیار بالاتری هستند. با استفاده از بازخورد موقعیت، موتور به صورت دقیق در موقعیت مطلوب نگه داشته میشود و تا حد زیادی از اشتباهات و خطاها جلوگیری میکند.
قابلیت تحمل بار: استپر موتورها عموماً قابلیت تحمل بارهای ثابت را دارند و به خوبی در بارهای استاتیک عمل میکنند. با این حال، در مواجهه با بارهای دینامیک (بارهایی که در حرکت هستند)، دقت و عملکرد آنها ممکن است کاهش یابد و احتمال افت فراوانی را داشته باشد. سروموتورها به عنوان موتورهای بازخوردی، قابلیت تحمل بارهای دینامیک بالا و کار با بارهای متغیر را دارند. با استفاده از بازخورد موقعیت، سیستم کنترلی قادر است تا به طور پویا برای حفظ موقعیت و کنترل دقیق در مقابل تغییرات بار عمل کند.
قابلیت سرعت و تغییر سرعت: استپر موتورها معمولاً در سرعتهای پایین تا متوسط به خوبی عمل میکنند. با افزایش سرعت، احتمال افت فراوانی و اشتباهات در حرکت موتور افزایش مییابد. در مقابل، سروموتورها دارای قابلیت تغییر سرعت و کنترل دقیق سرعت هستند. از طریق کنترل الکترونیکی و بازخورد موقعیت، سروموتورها قادر به تنظیم و تغییر سرعت در حین عملکرد هستند.
به طور کلی، استپر موتورها برای برنامههایی مناسب هستند که نیاز به حرکت دقیق با قدرت کمتر و در سرعتهای پایین تا متوسط دارند. سروموتورها به عنوان موتورهای بازخوردی، در برنامههایی که نیاز به دقت بالا، قدرت، تغییر سرعت و تحمل بارهای دینامیک دارند، مورد استفاده قرار میگیرند.
چه زمانی از استپ موتور استفاده کنیم؟
استپ موتورها به دلیل دقت بالا و قابلیت تغییر موقعیت در قدمهای دقیق، در برنامههایی که نیاز به حرکت دقیق در موقعیتهای مختلف دارند، مورد استفاده قرار میگیرند. مثالهایی از این برنامهها شامل رباتیک صنعتی، دستگاههای CNC، دستگاههای پزشکی و سیستمهای دقیق مکانیکی میباشد. استپ موتورها در سرعتهای پایین تا متوسط به خوبی عمل میکنند. بنابراین، اگر برنامه شما نیاز به حرکت با سرعت پایین و کنترل دقیق سرعت و گشتاور در این سرعتها دارد، استپ موتورها میتوانند انتخاب مناسبی باشند. مثالهایی از این برنامهها شامل ماشینهای خمیرکاری، ماشینآلات صنعتی و دستگاههای اتوماسیون میباشد. استپ موتورها عموماً قدرت کمتری نسبت به سروموتورها دارند. بنابراین، در برنامههایی که نیاز به قدرت کمتری دارید و تحمل بارهای ثابت برای موتور مهمتر است، استپ موتورها مناسب خواهند بود.تغییر موقعیت در قدمهای دقیق و تحمل بارهای ثابت دارند، مناسب هستند. اما در مواردی که نیاز به حرکت با سرعت بالا، کنترل دقیق سرعت در سرعت بالا، قدرت بیشتر و تحمل بارهای دینامیک دارید، سروموتورها بهترین گزینه خواهند بود.همچنین، در نظر داشته باشید که استپ موتورها عموماً به صورت گام به گام حرکت میکنند و نیاز به سیگنالهای پالسی برای کنترل دقیق موقعیت دارند. اگر برنامهی شما نیاز به حرکت پیوسته و انعطافپذیر دارد، ممکن است سروموتورها بهترین انتخاب باشند.
معرفی درایور استپر موتور A3967
درایور موتور A3967 یک درایور استپر موتور است که به صورت یکپارچه (IC) عرضه میشود. این درایور معمولاً برای کنترل استپر موتورهای دوطرفه (bipolar) با جریان تا ۷۵۰ میلیآمپر استفاده میشود. درایور A3967 قابلیت کنترل استپر موتورهای دوطرفه: درایور A3967 قادر به کنترل استپر موتورهای دوطرفه است که دارای دو ملقپایه (coil) هستند. این درایور قادر است جریانهای متغیر را برای هر ملقپایه ایجاد کند و با تغییر جهت جریان در ملقپایهها، حرکت موتور را کنترل کند. درایور A3967 ولتاژ کاری بین ۳٫۳ ولت تا ۳۰ ولت را پشتیبانی میکند. این ویژگی آن را قابل استفاده در برنامههای مختلف از قبیل رباتیک، خودروهای خودران و دستگاههای دقیق میکند.درایور A3967 دارای محافظتهایی برای موتور است که شامل محافظت در برابر افزایش جریان، افزایش دما و قطع و وصل خودکار (thermal shutdown) میشود. این ویژگیها به محافظت و طول عمر موتور کمک میکنند. برای کنترل درایور A3967، معمولاً از سیگنالهای ورودی ساده مانند پالس و جهت استفاده میشود. با تغییر تعداد و ترتیب پالسها و سیگنال جهت، میتوان حرکت و موقعیت موتور را کنترل کرد.درایور A3967 قابلیت تنظیم جریان خروجی را دارد. با تنظیم مقاومتهای مربوطه در درایور، میتوان جریان خروجی را تنظیم کرد. این قابلیت اجازه میدهد تا جریان مورد نیاز برای موتور به طور دقیق تنظیم شده و بهینه شود. این امکان میتواند برای کنترل حرارت و جلوگیری از گرم شدن زیاد موتور و همچنین بهبود عمر موتور مفید باشد.همچنین، درایور A3967 دارای ورودیهای کنترلی دیگری نیز است که به شما امکان کنترل جهت، توقف و راهاندازی موتور را میدهد. این ورودیها به عنوان سیگنالهای کنترلی مانند اعداد دوبیتی (bit) جهت و متوقف کردن حرکت موتور و ورودی “enable” برای راهاندازی و توقف کامل موتور استفاده میشوند.در کل، درایور A3967 یک درایور قدرتمند و قابل اطمینان برای کنترل استپر موتورهاست. این درایور به عنوان یک راه حل مقرون به صرفه و ساده در برنامههایی مانند رباتیک، دستگاههای CNC، چاپ سه بعدی و بسیاری از سیستمهای خانگی و صنعتی استفاده میشود.
راه انداری استپر موتور Stepper Motor
سادهترین راه استفاده از ماژول درایور موتور A3967 این است که آن را بر روی برد بُرد سوار کنیم. البته روش دیگر هم این است، که سیمها را مستقیما بر روی برد لحیم کنید. در این آموزش آردوینو از برد بُرد استفاده میکنیم. در ابتدا پین هدرهای نری را به ماژول درایور موتور A3967 لحیم کنید. همهی پینهای این برد در این مثال استفاده نمیشوند. اگرچه پیشنهاد می کنم همهی هدر ها را روی پینهای خروجی لحیم کنید، با این کار ماژول روی برد بُرد پایدار میشود.
اتصال استپر موتور به آردوینو
زمانی که تمام پین هدرها را لحیم کردید، با توجه به شکل زیر پایههای ماژول درایور موتور A3967 را به آردوینو Arduino UNO ارتباط دهید. توجه داشته باشید که استپر موتور کوچک با عکس بالا متفاوت است و در انتهای خود چهار پین اتصال دارد. این ۴ پین به پینهای میل هدر، روبه بالا وصل میشود. به خاطر ویژگی خاص این استپر شما میتوانید اتصال پینها را به هر صورتی انجام دهید، پایه سیاه سمت چپ باشد یا پایه زرد فرقی نمیکند، موتو ر به هر حال کار خواهد کرد. اگر از موتور دیگری استفاه میکنید از راهنمای آن برای چگونگی اتصال سیمها کمک بگیرید. استپر موتور، تغذیهای فراتر از آنچه آردوینو Arduino فراهم میکند نیاز دارد بنابراین در این مثال، از یک منبع تغذیه خارجی ۱۲ ولت برای تغذیه به برد آردوینو Arduino Uno استفاده میکنیم. توجه داشته باشید که ورودی تغذیه M+ بر روی برد ماژول درایور موتور A3967 به پین vin آردوینو Arduino متصل شده است. این کار به شما اجازه میدهد که هر دو را فقط با یک منبع تغذیه، تامین کنید.
کدنویسی آردوینو استپر موتور Stepper
زمانی که همه چیز را به درستی سوار کردید شما میتوانید سخت افزار را به آردوینو Arduino متصل کنید. در زیر کد سادهای نوشته شده که شما را کمی با روند کار آشنا کند. کمی با این کدها کار کرده، مقادیر آنها را تغییر دهید و آزادانه به کاوش در آن بپردازید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
وسایل مورد نیاز
۱- ماژول درایور موتور A3967
۲- استپر موتور
۳- برد بُرد
۴- کابل فلت نری به نری
۵- پین هدر نری صاف
۶- ماژول آردوینو UNO
۷- تجهیزات لحیم کاری
۸- منبع تغذیه ۱۲ ولت
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
سلام
با آردینو مگا ۲۵۶۰ و درایور DRV8825 هم همین دستورات کار می کند ؟؟
با سلام
برای این موضوع باید نوع برد و پینهای تعریف شده را با برد Mega2560 تطبیق دهید.
درود بر شما
در حلقه های for متغیر i با lt اند شده اند…. میشه در مورد این lt توضیح بدید…
آخه تو هیچ کجای برنامه متغیر lt تعریف نشده است….؟؟؟
با عرض سلام
اگر تعداد استپر موتور ها بیشتر شود (cnc)باید در دستورات چه تغییری ایجاد کنیم ؟؟
پروژه من cncاست.
با سلام
برای این منظور باید از شیلد CNC استفاده کنید و کتابخانه ها هم متفاوت خواهد بود.
سلام. با اردوینو uno میشه ۳ تا استپر رو بکار انداخت؟
با سلام
ضمن تشکر از توجه شما بله میتوانید با درایورهای راه انداز این کار را انجام دهید.
سلام و درود. مهندس من استپر موتور هام امپر و ولتاژ شیش هست برای سی ان سی چجوری میتونم امپر و ولتاژ درایور را اضافه کنم ایا اصلا جواب میده درایور این ولتاژ را یا باید تعییر بدم. منون
سلام
ضمن تشکر از توجه شما، طبق اطلاعات موجود در دیتاشیت این درایور تا ۳۰ ولت را میتواند تغذیه کند. از این رو کافیست ولتاژ ورودی به درایور را افزایش دهید.
سلام. با سپاس از آموزش خوبتون.
در این آموزش از استپر ۴ سیم استفاده کردید، نحوه استفاده از استپر ۵ سیم رو هم میفرمایید؟
سپاس
با سلام
ضمن تشکر از توجه شما، بسته به نوع موتور و با اطلاعات دیتاشیت باید این کار را انجام دهید. برخی از مدلها میتوان با صرف نظر از یکی پایهها راه اندازی کرد.
سلام
من چطور میتونم زاویه یا چرخش استپ موتور با آردینو بخونم .. آیا درایوری وجود داره ..؟
ممنون از پاسخ شما ..
با سلام
ضمن تشکر از توجه شما، اگر منظورتان دریافت فیدبک میباشد باید از سخت افزارهای ترکیبی استفاده کنید. در غیر این صورت بایستی بر اساس تعداد فاز استپر موتور میزان زاویه را محاسبه کنید و در کدها بر اساس نیازمندی به شافت استپر فرمان دهید.
ممنون از پاسخ شما.. و وقتی که گذاشتین..
می تونم از Magnetic Rotary Encoder مثل AS5048A برای چرخش استفاده کنم ؟
سلام مجدد، خواهش میکنم. روتارى انکودر یکى از سخت افزارها براى سنجش میزان دوران است. شما بسته به حساسیت پروژه باید از یک رابط سخت افزارى استفاده کنید. در این خصوص از دیگر کاربران که تخصص کافى دارند تقاضا دارم تا در این بحث شرکت کنند.
با عرض معذرت اگه سوالم خارج از این موضوع (ماژول این آموزش ) هست.
من از شیلد موتور درایو L293D استفاده میکنم ، که قابلیت ۴ موتور دی سی یا دو استپ موتور رو داره.
اگه بخواهیم تمام خروجی ها رو به موتور های مربوطه وصل کنیم آدرس دهی موتور ها تو برنامه آردینو به چه صورت داده میشه؟ بویژه در مورد آدرس دهی (انتخاب )استپ موتورها ؟
ممنون
با سلام
از آنجایی که این آموزش مرتبط با کالای درخواستی شما نمیباشد. برای این منظور باید به دیتاشیت همان شیلد مراجعه کنید. دستورات برای مدیریت موتورهای ذکر شده است.
ترتیب اتصال سیم ها به ماژول به چه صورت هست؟
اگر از شیلد استفاده کنید که دیگر نیازی به سیم کشی به ماژول وجود ندارد.
سلام
خیلی از آموزش های خوبتان تشکر میکنم
بسیار کاربردی و دقیق
فقط در این آموزش میخواستم بپرسم آیا مهمه که باتری ۱۲ ولتمون چند آمپر باشه ؟؟؟
سلام و تشکر بابت توجه شما
هر ماژول درایور موتور یک توانی دارد. بایستی بر اساس میزان توان ماژول و توان موتور مورد استفاده، موارد را انتخاب کنید.
سلام خسته نباشید ممنون از زحماتتون
من از شیلد سی ان سی ورژن ۳ استفاده کردم ( آردینو uno و درایور A4988 ) از کتابخانه خود آردوینو استفاده کردم ولی استپ موتور ( ۴ سیمه) تقه میزنه و کار نمیکنه (اتصالات درسته) . کتابخونه ی grbl رو لود کردم وبا grbl contoller هم دوباره صدای نبض میده. میشه بفرمایید مشکل از کجاست؟
با سلام
خب درایور A4988 با استپر ۴ سیمه بایستی درست کار کند. ولتاژ استپر مورد استفاده چقدر است؟ مشخصات استپر موتور را بفرمایید.
سلام خسته نباشید.
لطفا راهنمایی بفرمایید،وقتی در grbl جهت x , جهت y هر دو به یک استپر موتور دستور میدن مشکل از کجاست؟از شیلد سی ان سی استفاده میکنم
با سلام
در این خصوص بنده تست نکرده ام. لذا از دیگر کاربرانی که در این زمینه اطلاعات دارند، تقاضا میکنم در بحث شرکت کنند.
سلام وقتتون بخیر
من وقتی درایور استپپر موتور رو بع پینای اردینو وصل میکنم ، نویز شدیدی روی اردینو میوفته
نمیدونم باید چیکار کنم
لطفا راهنماییم کنین
با سلام
نوع درایور موتور و اتصالات را به صورت دقیق شرح دهید. همچنین منظورتان از نویز شدید را دقیقتر بفرمایید، تا بتوانم بررسی کنم.
با سلام
از چه مدلی استفاده میکنید؟
سلام من مهدیار اسماعیلی هستم و ده سالمه یک پروژه ی ربات بازو رو داشتم که به استپر موتور نیاز داشت می شه اموزش راه اندازی استپر موتور با زبان پایتون رو هم توی دیجی اسپارک بگذارید ممنون
با سلام
ضمن تشکر از شما، در صورت امکان منتشر خواهد شد.
سلام برای ساخت نویسنده ۲ بعدی کوچک با سی دی رام، برای راه اندازی استپر موتور های سی دی رام به چه درایوری و چندتا نیازه؟
با سلام
این مورد توسط بنده تست نشده است. انتخاب درایور موتور به ولتاژ و جریان موتور وابسته است.
سلام ببخشید من یه موتور ۳۸rpmمیخوام از چه نوع موتوری باید استفاده کنم ؟ ممنون
با سلام
در این خصوص از موتور گیربکس دار بایستی استفاده کنید.