مقدمه
در بسیاری از پروژه های صنعتی، تجاری و خانگی از موتورهای DC در کاربردهای کوچک و بزرگ استفاده می شود. از مهمترین کاربردهای این موتورها میتوان به استفاده از آنها در سیستم های تهویه، آسانسورها، پله های برقی، خودروها، مترو، دستگاهها و ماشین آلات صنعتی و … اشاره کرد.
معرفی موتورهای DC
موتورهای جریان مستقیم یا DC یکی از رایج ترین انواع موتورهای الکتریکی است که در بسیاری از کاربردها از آن استفاده می شود. موتورهای DC با رنج وسیعی از ولتاژ اعمالی به آنها کار می کنند اما معمولا در کارهای رباتیک با ولتاژی بین ۶ تا ۱۲ ولت راه اندازی می گردند و جریان مصرفی آن بسته به بار و ولتاژ اعمالی تا چند آمپر نیز می رسد.
با اتصال گیربکس به موتورهای DC قدرت و گشتور این نوع موتورها را افزایش می دهند. شکل زیر گیربکس اضافه شده به یک موتور DC را نشان می دهد.
راه اندازی و کنترل سرعت موتورهای DC
سرعت موتور DC به مجموعهای از ولتاژ و جریان عبوری از سیم پیچهای موتور و نیز بار موتور و گشتاور موتور، بستگی دارد. بنابراین ساده ترین راه برای کنترل سرعت موتور DC استفاده از یک مقاومت متغیر ( رئوستا ) همانند مدار شکل زیر است.
اما یکی دیگر از پر کاربردترین روش ها بر کنترل دور موتورهای DC استفاده از مدولاسیون عرض پالس می باشد. مدولاسیون عرض پالس (PWM) یک تکنولوژی بسیار مؤثر برای کنترل توان می باشد. ایده اصلی این روش بر مبنای استفاده از پالس های ولتاژ مربعی برای تغذیه موتور می باشد که در آن مقدار توان اعمالی به بار به درصد وظیفه (Dutycycle) بستگی دارد.
نحوه کنترل موتور به وسیله مدولاسیون عرض پالس بدین گونه است که ابتدا یک فرکانس مناسب و ثابت را انتخاب کرده و سپس برای افزایش سرعت موتور Dutycycle را افزایش و برای کاهش سرعت Dutycycle را کاهش می دهیم. فرکانس پالس PWM مناسب برای راه اندازی موتور DC بسته به نوع موتور معمولا بین ۱ تا ۱۰۰ کیلوهرتز انتخاب می شود.
انواع درایورهای موتورهای DC
برای راه اندازی موتورهای DC به روش PWM ، بهترین گزینه استفاده از میکروکنترلر برای تولید پالس PWM با Dutycycle متغیر می باشد. اما در صورت استفاده از میکروکنترلر باید از یک راه انداز ( Driver ) بین میکرو و موتور DC استفاده کرد چرا که پایه های میکرو جریانی در حدود میلی آمپر تولید کرده و توانایی تولید پالسی با جریان دهی بالا ، برای راه اندازی موتور DC را ندارد. بنابراین در پالس PWM تولید شده توسط میکرو باید نوعی تقویت جریان صورت گیرد. به همین منظور از درایورهای موتور DC استفاده می شود.
۱-درایور یک طرفه :
در این مدار ما قادر هستیم به وسیله تغییر زمان وظیفه ( Dutycycle ) پالس هایی که به بیس ترانزیستور اعمال می شود سرعت موتور را تنها در یک جهت مشخص کنترل کنیم. برای موتورهای کوچکتر از ترانزیستور BJT به صورت شکل زیر استفاده می شود.
برای خنثی کردن اثر تخلیه در بارهای سلفی در هنگام قطع و وصل شدن جریان بار ، از دیود هرز گرد در مدار استفاده شده است. همچنین برای بارهای نیازمند جریان بیشتر ، به جای ترانزیستور BJT ، میتوان از ترانزیستورهای دارلینگتون برای جریان های تا یک آمپر و از ترانزیستور MOSFET برای جریان های تا چندین آمپر و برای بارهای با جریان های بالاتر از ترانزیستور IGBT استفاده کرد.
۲-درایور دو طرفه ( پل H ) :
در درایور یک طرفه فقط میتوان موتور را در یک جهت خاموش و روشن کرد. اگر بخواهیم موتور در هر دو طرف چرخش داشته باشد، کافی است تا قطب پایه های آن را عوض کنیم ، برای این منظور از درایوری با چهار ترانزیستور موسوم به پل H یا H Bridge استفاده می شود.
در این درایور اگر پالس PWM به IN1 اعمال شود و IN2 زمین باشد. موتور در جهت چپگرد و در صورتی که پالس PWM به IN2 اعمال شود و IN1 زمین باشد ، موتور در جهت راستگرد خواهد چرخید.
برای موتورهای بزرگتر که نیازمند جریان بیشتر برای راه اندازی هستند از مدار پل H با ترانزیستور MOSFET استفاده می شود.
انواع آی سی های درایور موتورهای DC
برای کنترل موتورهای DC ، آی سی های مختلفی به بازار عرضه شده است که می توان به درایورهای LMD18201, SN154410, L293D, L298N و … اشاره کرد. در این آی سی ها مدار مورد نیاز برای راه اندازی موتور DC ( پل H ) وجود دارد.
درایور L298N
یکی از بهترین و کاملترین درایورها برای راه اندازی موتور DC که قابلیت کنترل سرعت توسط میکروکنترلر را دارند ، درایور L298 می باشد. آی سی L298 یک راه انداز معروف برای موتورهای DC می باشد و از دو پل H مستقل تشکیل شده است که میتواند دو موتور DC را جداگانه راه اندازی نماید. شکل زیر ترتیب پایه ها و شکل ظاهری تراشه مذکور را نشان می دهد. آی سی L298 قادر است حداکثر تا ۲A جریان را برای بار تامین کند. حداکثر ولتاژ پایه Vs که ولتاژ بار خوانده می شود، نیز ۴۸V است.
تشریح پایه های آی سی درایور L298 :
Pin 1. CURRENT SENSING A
از این پایه جهت کنترل جریان موتور A استفاده می گردد. همچنین می توان این پایه را به صورت مستقیم به خط منفی مدار GND اتصال داد که در این صورت کنترلی بر روی جریان وجود ندارد.
Pin 2. OUTPUT 1
این پایه به یکی از ترمینالهای موتور A متصل می گردد . همچنین دیودهای هرز گرد جهت حفاظت به همین پایه متصل می شوند .
Pin 3. OUTPUT 2
این پین به ترمینال دیگر موتور A متصل شده و دیودها نیز جهت حفاظت به همین پایه متصل می شوند.
Pin 4. SUPPLY VOLTAGE (VS)
به پایه باید ولتاژ مورد نظر خود جهت اعمال به موتورها را متصل نمایید. این ولتاژ با توجه به موتورهای مورد استفاده شما حداکثر تا ۴۶ ولت می تواند افزایش یابد. به برای ساخت رباتهای کوچک به طور معمول بین ۶ تا ۱۲ ولت است.
Pin 5. INPUT 1 TTL Compatible Inputs 1 to drive Motor A.
این پایه باید به صفر یا پنج ولت متصل گردد که همراه با پین ۷ می توانند جهت گردش موتور را مشخص نمایند.
Pin 6. ENABLE A TTL Compatible Enable Input for Motor A.
این پایه جهت روشن و خاموش کردن موتور A و در بیشتر مواقع جهت اعمل فرکانس PWM به موتور استفاده می گردد. پنج ولت موتور را روشن و صفر موتور را خاموش می کند.
Pin 7. INPUT 2 TTL Compatible Inputs 2 to drive Motor A.
این پایه باید به صفر یا پنج ولت متصل گردد که همراه با پین ۵ می توانند جهت گردش موتور را مشخص نمایند.
Pin 8. GND
اتصال به خط منفی مدار GND
Pin 9. LOGIC SUPPLY VOLTAGE (VSS)
اتصال به ۵ تا ۷ ولت
Pin10. INPUT 3 TTL Compatible Inputs 1 to drive Motor B.
این پایه باید به صفر یا پنج ولت متصل گردد که همراه با پین ۱۲ می توانند جهت گردش موتور B را مشخص نمایند.
Pin 11. ENABLE B TTL Compatible Enable Input for Motor B.
این پایه جهت روشن و خاموش کردن موتور B و در بیشتر مواقع جهت اعمل فرکانس PWM به موتور استفاده می گردد. پنج ولت موتور را روشن و صفر موتور را خاموش می کند.
Pin 12. INPUT 4 TTL Compatible Inputs 2 to drive Motor B.
این پایه باید به صفر یا پنج ولت متصل گردد که همراه با پین ۱۰ می توانند جهت گردش موتور B را مشخص نمایند.
Pin 13. OUTPUT 3
این پایه به یکی از ترمینالهای موتور B متصل می گردد . همچنین دیودها نیز جهت حفاظت به همین پایه متصل می شوند .
Pin 14. OUTPUT 4
این ترمینال دیگر موتور B متصل می گردد و دیودها نیز جهت حفاظت به همین پایه متصل می شوند.
Pin 15. CURRENT SENSING B
از این پایه جهت کنترل جریان موتور B استفاده می گردد. همچنین می توان این پایه را به صورت مستقیم به خط منفی مدار GND اتصال داد که در این صورت کنترلی بر روی جریان وجود ندارد.
نکته : آی سی L298 فاقد دیود داخلی است. بنابراین در هنگام اتصال بارهای سلفی، دیودهای هرزگرد باید به صورت خارجی متصل شوند.
بنابراین مجموعه قطعات مورد نیاز دیگر علاوه بر آی سی L298 در ماژولی به نام ماژول L298N گردآوری شده است که در شکل زیر آن را مشاهده می کنید.
لینک خرید مستقیم ماژول L298N از فروشگاه الکترو ولت
این ماژول دارای شش ورودی به نام های ENA,In1,In2,In3,In4,ENB و چهار خروجی به نام های Out1,Out2,Out3,Out4 دارد. نحوه عملکرد ایم ماژول در جدول زیر آمده است :
عملکرد | ورودی | ||
B | A | Enable | |
ترمز | ۰ | ۰ | ۱ |
راستگرد | ۱ | ۰ | |
چپگرد | ۰ | ۱ | |
ترمز | ۱ | ۱ | |
آزاد | x | x | ۰ |
تولید پالس PWM از طریق میکروکنترلرهای AVR
با استفاده از ویژگی PWM در میکروکنترلرهای AVR میتوان انواع موتورهای DC را به یکی از پایه های OCX متصل کرده و سرعت آنها را از طریق تغییر توان کنترل کرد به طوری که هر چه Duty Cycle بیشتر باشد ، موتور سریعتر و هرچه کمتر باشد موتور کندتر می چرخد . در دیوتی سایکل ۱۰۰ درصد بیشترین توان به موتور اعمال می شود .
ما به سادگی از طریق میکروکنترلر قادر هستیم پالسهای PWM را با زمان وظیفه و فرکانسهای دلخواه تولیدکنیم. همانطور که میدانید تایمرها دارای چندین مد تولید PWM می باشند که با مقداردهی رجیسترها و تنظیماتی در ابزار CodeWizard ما قادر به تولید PWM هستیم.
راه اندازی تایمر صفر میکروکنترلر Atmega32 برای تولید PWM
برای تنظیم میکروکنترلر از ابزار کدویزارد استفاده می کنیم و در قسمت Timers حالت عملکرد تایمر را روی Fast PWM قرار می دهیم. پس از انتخاب مد مورد نظر در قسمت تنظیمات تایمر صفر باید نوع خروجی را نیز از قسمت output در زیر منوی Mode انتخاب کنید. گزینه Disconnected باعث غیرفعال شدن تولید PWM شده و گزینه های non-inverted , inverted به ترتیب خروجی های معکوس و غیرمعکوس PWM را مشخص می کنند.
با تغییر مقدار رجیستر OCR0 بین ۰ تا ۲۵۵ در برنامه ، میتوان دیوتی سایکل ( PWM ) را از ۰ تا ۱۰۰ درصد تغییر داد.
برای آموزش بیشتر و دریافت سورس کامل این پروژه به همراه توضیحات آن به صورت PDF به لینک زیر مراجعه نمایید.
دانلود بهترین و کاملترین بسته آموزشی میکروکنترلرهای AVR
در صورتی که این آموزش مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود.
دیدگاه (22)
آقا دستت درد نکنه خیلی کامل و خووب بود
خیلی ممنونم از حسن نظرتون
با سلام
در مورد راه اندازی موتور پله، آموزشی تو سایت نیست یا من ندیدم!؟
سلام آموزش Step موتور درون بسته جامع آموزش AVR وجود دارد که بعد از خرید میتوانید دانلود و استفاده نمایید
سلام با تشکر از مطالب مفیدتون
لطفا در صورت امکان منبع هم ذکر کنید
با سپاس
سلام دوست عزیز خیلی ممنونم منبع مشخصی ندارد از اینترنت می باشد یا ترجمه دیتاشیت است
سلام خیلی از سایت ها رو گشتم ولی مطلب شما بیشتر کمکم کرد. ازتون تشکر می کنم آقای مهندس. پیروز و برقرار باشید.
سلام دوست عزیز خیلی ممنونم از حسن نظرتون همچنین
سلام. واقعا مطالب مفید و کاملی دارید!
خیلی ممنون از مطالب مفیدتون!
انشالله که موفق باشید!
سلام دوست عزیز سپاسگزارم
سلام
اگه میشه توی عکسی که گذاشتید به لینک زیر
https://electrovolt.ir/wp-content/uploads/2015/09/DC_Motor6.png
یه ترانزیستور مناسب نام ببرید که من برم بخرم 🙂
میخوام به base آن 5 ولت وصل کنم!
bc337 و bc327
از آی سی L298 استفاده کنید بهتره
سلام وقت بخیرببخشید توی راه اندازی تراشته ی l298n مشکل دارمتمام اتصالاتو از روی دیتاشیت وصل می کنم ولی جواب نمیده…جالب اینجاست که هر دوتا پایه ی خروجیش باهم فعال میشن!!چیکار کنم بنظرتون
سلام پیشنهاد میکنم از ماژول آماده به جای تراشه استفاده نمایید
ممنون از شما برای مطالب کامل و مفیدتان در مورد میکروکنترلرها
ممنون از لطفتون
سلام وقتی ورودی ها را همزمان به صفر یا یک وصل می نکم موتور ترمز نمیکنه علت چیه؟
سلام دوست عزیز برای داشتن ترمز قوی تر باید در جهت عکس حرکت موتور پالس PWM اعمال کنید
با عرض سلام و خسته نباشید خدمت شما ادمین محترم
با این ماژول یک موتور گیربکس 24 ولت dc (که برای جک درب پارکینگ مورد استفاده قرار میگیره) رو میتوان کنترل کرد البته من نیاز به 2 تا دکمه دارم که با فشردن یکی موتور چپگرد و با فشردن دیگری موتور راستگرد بچرخد ممنون میشم راهنمایی فرمایید
سلام دوست عزیز خیلی ممنونم
بله میشه 24 ولت را به جای 12 ولت به ورودی ماژول دهید
با عرض سلام و خسته نباشید خدمت شما ادمین محترم
با این ماژول یک موتور گیربکس 24 ولت dc (که برای جک درب پارکینگ مورد استفاده قرار میگیره) رو میتوان کنترل کرد البته من نیاز به 2 تا دکمه دارم که با فشردن یکی موتور چپگرد و با فشردن دیگری موتور راستگرد بچرخد ممنون میشم راهنمایی فرمایید
سوال : میشه دکمه گذاشت کاره چپگرد راستگرد موتور رو انجام داد ؟ اگر میشه چه طوری ممنون میشم جواب دهید
برای خرید اسمه محصول چیه بخواهیم سفارش بدیم و قیمت محصول چقدره
سلام بله میشه برای راهنمایی بیشتر در تلگرام پاسخگو خواهم بود