موتور پله ای
استپر موتور هم برگرفته از اسمش نوعی موتوراست که تولید حرکت دورانی میکند. با این تفاوت که استپر موتورها دارای حرکت دقیق و حساب شده تری هستند. این موتورها به صورت درجه ای دوران میکنند و با درجههای مختلف در بازار موجود هستند.
در واقع واژه پله به معنی چرخش به اندازه درجه تعریف شده است. مثلا استپ موتوری با درجه 8. 1 باید 200 پله انجام بدهد تا 360 درجه یا یک دور کامل بچرخد.
200*8. 1=360
و یک استپر مونور با درجه 15 فقط باید 24 پله برای یک دور کامل انجام دهد. این ویژگی فواید بسیار زیادی از جمله امکان کنترل سرعت را ایجاد میکند.
اما موتور DC چگونه عمل میکند؟
وقتی به موتور الکتریکی ولتاژ دهیم از سرعت آرام شروع میکند و شتاب میگیرد و با قطع کردن ولتاژ تازه میخواهد شتاب منفی بگیرد و معلوم نیست چند ثانیه بعد از قطع ولتاژ از چرخش بایستد. با این تفاسیر فکر میکنید در هارد دیسکها، دیسک درایوها و یا ویدئوها از کدام موتور استفاده میکنند؟ در رباتیک بسته به نوع شرایط از هردو نوع موتور استفاده میشود.
موتورهای پلهای موجود در بازار معمولا دونوع ۵ یا ۶ سیمه هستند. در مدل ۵ تایی فقط یک سیم مشترک جود دارد ولی در مدل ۶ تایی ۲ سیم مشترک وجود دارد که باید به ولتاژ وصل شوند (سیمهای مشترک معمولا قرمزهستند). یعنی در هردو مدل در آخر فقط ۴ تا سیم باقی میماند.
نحوه تست سالم بودن موتور پلهای
برای اینکار در مرحله اول باید مطمعن باشیم هیچکدام از سیمها به هم اتصال ندارند، حالا با دست شفت را بچرخانید، میبینید که راحت و روان می چرخد! حالا تمام سیمها را به هم اتصال بدهید و سعیکنید دوباره شفت رو با دست بچرخانید، اگر مقاومتی یا سفتی نسبت به حالت قبل احساس کردید حتما استپر موتور سالم است.
یافتن ترتییب صحیح سیمها
پیدا کردن این ترتیب بسیار مهم است و اگر رعایت نشود موتور ما درست نخواهد چرخید. برای اینکار ابتدا سیم یا سیمهای مشترک را به ولتاژ مورد نیاز موتور ( درج شده روی بدنه موتور و معمولا 12 ولت) وصل میکنیم. بعد ازمیان ۴ تا سیم باقیمانده یکی را انتخاب میکنیم و سر منفی یا زمین آن منبع را به آن اتصال میدهیم. این کار باعث چرخش کوچک میشود. یک کاغذ گرد یه یک تکه چوب به شفت ببندید تا چرخشهای ریز معلوم شود. این چرخش کوچک در واقع همان یک پله موتور به اندازه زاویه موتور میباشد. حالا سر منفی GND را به یکی از ۳ سییم دیگر اتصال دهید. اگر از این ۳ تا سیم، سیم صحیح را انتخاب کرده باشید گردش کوچکی (به اندازه قبلی) در ادامه حرکت قبلی میبینید ولی اگر خطا باشد گردش معکوس یا بیش ازحد (به اندازهی ۲ یا ۳ پله) خواهید داشت. اگر سیم خطا بود دوباره زمین را به سیم اول اتصال دهید و همان کار را با ۲ سیم دیگر تکرار کنید تا زمانی که سیم صحیح پیدا شود. وقتی سیم صحیح پیدا شد سیم اول را کنار بگذارید و مراحل را از اول برای سه سیم باقیمانده انجام دهید تا ترتیب ۴ تا سیم را پشت سرهم پیدا کنید.
نحوهی کنترل موتور پلهای
حالا اگر این چهارتا سیم را به ترتیب صحیح کنار هم قرار دهیم و سر منفی منبع را به ترتیب را روی آنها بکشیم میبینیم که موتور هرچند دست و پا شکسته شروع به چرخش میکند. (البته باید ترتیب سیمها کاملا صحیح باشد).
حالا فرض کنید چهار تا سیم را به صورت چهار بیت در نظر بگیریم و 1 شدن هرکدام به معنی اتصال آن به GND باشد (البته اینجا شما فقط برای درک بهتر این را فرض کنید چون در واقعیت برعکس 0 به معنی گراند شدن است). مثلا 0001 یعنی سیم اول گراند شده و 0100 یعنی سیم سوم گراند شده است.
اگر چهار پله a ,b ,c, d را که هر کدام به صورت چهار بیت در جدول نشان داده شده را به صورت مداوم به یک استپ موتور القا کنیم (شبیه کشیدن GND بهسرعت روی چهار سیم موتور) باعث حرکت منظم موتور دریک جهت خواهیم شد. این نوع القا بیتها، حرکت یکبیتی نام دارد. یعنی در هر پله فقط یک بیت روشن یا 1 است. در ضمن القا بیتها طبق این جدول و جداول بعدی مرحله جداگانهای است که باید توسط میکروکنترلر انجام گیرد.
نوع دیگری از القا پله به موتور وجود دارد که حرکت دوبیتی نام دارد. همانطور که در جدول میبینید در این نوع حرکت دریک پله همزمان دوبیت 1 هستند (انگار همزمان دو سیم را به زمین اتصال دادیم). اگر این مدل را مثل بالا به صورت مداوم تکرار کنیم باز هم باعث چرخش موتور خواهیم شد اما در این حالت گشتاور و جریان مصرفی موتور نزدیک دو برابر خواهد شد. افزایش گشتاور به معنی افزایش قدرت چرخانندگی (نه سرعت چرخش) است.
نوع دیگری از القا پله به استپ موتور وجود دارد بنام حرکت نیم پله. همانطور که از اسمش پیداست این مدل باعث چرخش موتور به اندازه نیم پله خواهد شد. مثلا اگرزاویه موتوری 8,1 درجه است هر پله از این مدل باعث چرخش موتور به اندازه9,0 درجه خواهد شد. از ویژگیهای این روش افزایش حساسیت استپر موتور است. لازم به ذکر است که اگر بیتهای این سه جدول را از بالا به پایین القا کنیم موتور در جهت ساعتگرد و اگر از پایین به بالا اجرا کنیم در جهت پادساعتگرد خواهد چرخید.
خب حالا حتما فکر میکنید میشود چهار سیم موتور را به چهار پین از یک پورت (دلخواه) میکرو وصل کنیم و با تغییر متناوب بیتها (0001 ، 0010 و…) میتوانیم باعث چرخش موتو شویم. اما واقعیت این است که کمتر مصرف کنندهای را میشود به صورت مستقییم به پایهها میکرو وصل کرد. علتش هم این است که پایههای میکرو نمیتواند بیشتر از 20 میلی آمپر را سینک کنند (عبور دهد).
برای مثال فرض کنید یک LED داریم با آمپراژ 50 میلی آمپرمصرفی، اگر سر مثبت آن را به ولتاژ وصل کنیم و سر منفی آن را به یک پین از میکرو وصل کنیم آن پین را صفر کنیم (به معنی GND کردن) باعث سوختن حداقل همان پیین میکرو می شویم. این بخاطر جریان کشیدن بیش از توان میکرو هست، برای همین باید بین پین و پایه منفی LEDیا پایه LED و سر مثبت منبع یک مقاومت مناسب قرار دهیم. همین اتفاق در مورد استپر موتور صادقه فقط با مقیاس بزرگتر برای جلوگیری ازین پدیده از آیسیهای رابط مخصوصی استفاده میکنند که اصطلاحا درایور نام دارند. باوجود تنوع زیاد درایورها از مدل ULN2803 یا 2003 ULN که یکی از رایجترین نوع برای ساخت ربات مسیریاب است استفاده میکنیم.
این درایور دارای 18 پایه است. همانطور که در شماتیک درون IC مشاهده میکنید پایه 9 سر GND و پایه 10 سر Vcc است و پایه 1 تا 8 ورودی (در اینجا از میکرو) و پایه 11 تا 18 خروجی (در اینجا به موتور) این آیسی هستند. در شکل نحوه رابط قرار دادن این آیسی ن بین 4 پایه میکرو و 4 سیم موتور را مشاهده میکنید. توجه کنید که در این آیسی، پایه 18 خروجی پایه 1، پایه17 خروجی 2، 16 خروجی 3 و. . . میباشد.
البته همانطور که در قسمت کنترل استپ موتور اشاره شد بیتها ارائه شده در جدولهای پست قبل باید به صورت نقیض به موتور ارسال شود. مثلا 0001 که از میکرو ارسال میشود باید به صورت11110 به موتور ارسال شود، چون میخواهیم سیمهای استپر را به ترتیب 1 های جدول GND کنیم و صفر به معنی GND 1 هست که یکی از کارهای مهم این IC هم همین کار است و خروجیهای میکرو را که طبق جدول های پست قبل هست نقیض (NOT) میکند و به موتور می فرستد. در ضمن از آنجایی که این درایور 8 تا ورودی و 8 تا خروجی دارد، ما میتوانیم دوتا موتور را فقط با یک درایور راه بیندازیم. 4 تا ورودی و 4 تا خروجی برای 1 موتور و یک جفت 4 تایی باقیمانده هم برای موتور دوم.