آشنایی با موتورهای DC و آموزش راه اندازی آن با AVR

بازگشت به آموزشگاه

مقدمه

در بسیاری از پروژه های صنعتی، تجاری و خانگی از موتورهای DC در کاربردهای کوچک و بزرگ استفاده می شود. از مهمترین کاربردهای این موتورها میتوان به استفاده از آنها در سیستم های تهویه، آسانسورها، پله های برقی، خودروها، مترو، دستگاهها و ماشین آلات صنعتی و … اشاره کرد.

 


معرفی موتورهای DC

موتورهای جریان مستقیم یا DC یکی از رایج ترین انواع موتورهای الکتریکی است که در بسیاری از کاربردها از آن استفاده می شود. موتورهای DC با رنج وسیعی از ولتاژ اعمالی به آنها کار می کنند اما معمولا در کارهای رباتیک با ولتاژی بین ۶ تا ۱۲ ولت راه اندازی می گردند و جریان مصرفی آن بسته به بار و ولتاژ اعمالی تا چند آمپر نیز می رسد.

DC_Motor1

با اتصال گیربکس به موتورهای DC قدرت و گشتور این نوع موتورها را افزایش می دهند. شکل زیر گیربکس اضافه شده به یک موتور DC را نشان می دهد.

DC_Motor2

 


راه اندازی و کنترل سرعت موتورهای DC

سرعت موتور DC به مجموعه‌ای از ولتاژ و جریان عبوری از سیم پیچ‌های موتور و نیز بار موتور و گشتاور موتور، بستگی دارد. بنابراین ساده ترین راه برای کنترل سرعت موتور DC استفاده از یک مقاومت متغیر ( رئوستا ) همانند مدار شکل زیر است.

DC_Motor3

اما یکی دیگر از پر کاربردترین روش ها بر کنترل دور موتورهای DC استفاده از مدولاسیون عرض پالس می باشد. مدولاسیون عرض پالس (PWM) یک تکنولوژی بسیار مؤثر برای کنترل توان می باشد. ایده اصلی این روش بر مبنای استفاده از پالس های ولتاژ مربعی برای تغذیه موتور می باشد که در آن مقدار توان اعمالی به بار به درصد وظیفه (Dutycycle) بستگی دارد.

DC_Motor4

نحوه کنترل موتور به وسیله مدولاسیون عرض پالس بدین گونه است که ابتدا یک فرکانس مناسب و ثابت را انتخاب کرده و سپس برای افزایش سرعت موتور Dutycycle را افزایش و برای کاهش سرعت Dutycycle را کاهش می دهیم. فرکانس پالس PWM مناسب برای راه اندازی موتور DC  بسته به نوع موتور معمولا بین ۱ تا ۱۰۰ کیلوهرتز انتخاب می شود.

 


انواع درایورهای موتورهای DC

برای راه اندازی موتورهای DC به روش PWM ، بهترین گزینه استفاده از میکروکنترلر برای تولید پالس PWM با Dutycycle متغیر می باشد. اما در صورت استفاده از میکروکنترلر باید از یک راه انداز ( Driver ) بین میکرو و موتور DC استفاده کرد چرا که پایه های میکرو جریانی در حدود میلی آمپر تولید کرده و توانایی تولید پالسی با جریان دهی بالا ، برای راه اندازی موتور DC را ندارد. بنابراین در پالس PWM تولید شده توسط میکرو باید نوعی تقویت جریان صورت گیرد. به همین منظور از درایورهای موتور DC استفاده می شود.

 

۱-درایور یک طرفه :

در این مدار ما قادر هستیم به وسیله تغییر زمان وظیفه ( Dutycycle ) پالس هایی که به بیس ترانزیستور اعمال می شود سرعت موتور را تنها در یک جهت مشخص کنترل کنیم. برای موتورهای کوچکتر از ترانزیستور BJT به صورت شکل زیر استفاده می شود.

DC_Motor5

برای خنثی کردن اثر تخلیه در بارهای سلفی در هنگام قطع و وصل شدن جریان بار ، از دیود هرز گرد در مدار استفاده شده است. همچنین برای بارهای نیازمند جریان بیشتر ، به جای ترانزیستور BJT ، میتوان از ترانزیستورهای دارلینگتون برای جریان های تا یک آمپر و از ترانزیستور MOSFET برای جریان های تا چندین آمپر و برای بارهای با جریان های بالاتر از ترانزیستور IGBT استفاده کرد.

 

۲-درایور دو طرفه ( پل H ) :

در درایور یک طرفه فقط میتوان موتور را در یک جهت خاموش و روشن کرد. اگر بخواهیم موتور در هر دو طرف چرخش داشته باشد، کافی است تا قطب پایه های آن را عوض کنیم ، برای این منظور از درایوری با چهار ترانزیستور موسوم به پل H یا H Bridge استفاده می شود.

DC_Motor6

در این درایور اگر پالس PWM به IN1 اعمال شود و IN2 زمین باشد. موتور در جهت چپگرد و در صورتی که پالس PWM به IN2 اعمال شود و IN1 زمین باشد ، موتور در جهت راستگرد خواهد چرخید.

برای موتورهای بزرگتر که نیازمند جریان بیشتر برای راه اندازی هستند از مدار پل H با ترانزیستور MOSFET استفاده می شود.

H_Bridge_Mosfet

 


انواع آی سی های درایور موتورهای DC

برای کنترل موتورهای DC ، آی سی های مختلفی به بازار عرضه شده است که می توان به درایورهای LMD18201, SN154410, L293D, L298N و … اشاره کرد. در این آی سی ها مدار مورد نیاز برای راه اندازی موتور DC ( پل H ) وجود دارد.

 

درایور L298N

L298N_IC

یکی از بهترین و کاملترین درایورها برای راه اندازی موتور DC که قابلیت کنترل سرعت توسط میکروکنترلر را دارند ، درایور L298 می باشد. آی سی L298 یک راه انداز معروف برای موتورهای DC می باشد و از دو پل H مستقل تشکیل شده است که میتواند دو موتور DC را جداگانه راه اندازی نماید. شکل زیر ترتیب پایه ها و شکل ظاهری تراشه مذکور را نشان می دهد. آی سی L298 قادر است حداکثر تا ۲A جریان را برای بار تامین کند. حداکثر ولتاژ پایه Vs که ولتاژ بار خوانده می شود، نیز ۴۸V است.

L298_IC

 

تشریح پایه های آی سی درایور 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 گردآوری شده است که در شکل زیر آن را مشاهده می کنید.

L298_Module

لینک خرید مستقیم ماژول 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 را مشخص می کنند.

DC_Motor_CodeWizard

با تغییر مقدار رجیستر OCR0 بین ۰ تا ۲۵۵ در برنامه ، میتوان دیوتی سایکل ( PWM ) را از ۰ تا ۱۰۰ درصد تغییر داد.

برای آموزش بیشتر و دریافت سورس کامل این پروژه به همراه توضیحات آن به صورت PDF به لینک زیر مراجعه نمایید.


دانلود بهترین و کاملترین بسته آموزشی میکروکنترلرهای AVR

AmazingAVR


در صورتی که این آموزش مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود.

دیدگاه (22)

  • سامان پاسخ

    آقا دستت درد نکنه خیلی کامل و خووب بود

    1394-11-09 در 09:36
    • ادمین الکترو ولت پاسخ

      خیلی ممنونم از حسن نظرتون

      1394-11-09 در 13:26
  • Nrezaie پاسخ

    با سلام
    در مورد راه اندازی موتور پله، آموزشی تو سایت نیست یا من ندیدم!؟

    1395-04-07 در 05:26
    • ادمین الکترو ولت پاسخ

      سلام آموزش Step موتور درون بسته جامع آموزش AVR وجود دارد که بعد از خرید میتوانید دانلود و استفاده نمایید

      1395-04-07 در 06:58
  • شیرازی پاسخ

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

    1395-04-22 در 10:02
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز خیلی ممنونم منبع مشخصی ندارد از اینترنت می باشد یا ترجمه دیتاشیت است

      1395-05-02 در 07:31
  • الهه پاسخ

    سلام خیلی از سایت ها رو گشتم ولی مطلب شما بیشتر کمکم کرد. ازتون تشکر می کنم آقای مهندس. پیروز و برقرار باشید.

    1395-04-27 در 06:55
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز خیلی ممنونم از حسن نظرتون همچنین

      1395-04-27 در 09:13
  • علی فلاح پاسخ

    سلام. واقعا مطالب مفید و کاملی دارید!
    خیلی ممنون از مطالب مفیدتون!
    انشالله که موفق باشید!

    1395-09-06 در 17:03
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز سپاسگزارم

      1395-09-25 در 06:12
  • علی فلاح پاسخ

    سلام
    اگه میشه توی عکسی که گذاشتید به لینک زیر
    https://electrovolt.ir/wp-content/uploads/2015/09/DC_Motor6.png
    یه ترانزیستور مناسب نام ببرید که من برم بخرم 🙂
    میخوام به base آن 5 ولت وصل کنم!

    1395-09-20 در 11:34
    • ادمین الکترو ولت پاسخ

      bc337 و bc327
      از آی سی L298 استفاده کنید بهتره

      1395-09-25 در 06:16
  • navid پاسخ

    سلام وقت بخیرببخشید توی راه اندازی تراشته ی l298n مشکل دارمتمام اتصالاتو از روی دیتاشیت وصل می کنم ولی جواب نمیده…جالب اینجاست که هر دوتا پایه ی خروجیش باهم فعال میشن!!چیکار کنم بنظرتون

    1396-01-03 در 19:30
    • ادمین الکترو ولت پاسخ

      سلام پیشنهاد میکنم از ماژول آماده به جای تراشه استفاده نمایید

      1396-01-05 در 15:06
  • حسین پاسخ

    ممنون از شما برای مطالب کامل و مفیدتان در مورد میکروکنترلرها

    1396-01-21 در 16:32
    • ادمین الکترو ولت پاسخ

      ممنون از لطفتون

      1396-01-22 در 15:48
  • مهدی پاسخ

    سلام وقتی ورودی ها را همزمان به صفر یا یک وصل می نکم موتور ترمز نمیکنه علت چیه؟

    1396-04-22 در 09:30
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز برای داشتن ترمز قوی تر باید در جهت عکس حرکت موتور پالس PWM اعمال کنید

      1396-04-23 در 09:32
  • مهدی پاسخ

    با عرض سلام و خسته نباشید خدمت شما ادمین محترم
    با این ماژول یک موتور گیربکس 24 ولت dc (که برای جک درب پارکینگ مورد استفاده قرار میگیره) رو میتوان کنترل کرد البته من نیاز به 2 تا دکمه دارم که با فشردن یکی موتور چپگرد و با فشردن دیگری موتور راستگرد بچرخد ممنون میشم راهنمایی فرمایید

    1396-05-01 در 15:42
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز خیلی ممنونم
      بله میشه 24 ولت را به جای 12 ولت به ورودی ماژول دهید

      1396-05-01 در 23:00
  • مهدی پاسخ

    با عرض سلام و خسته نباشید خدمت شما ادمین محترم
    با این ماژول یک موتور گیربکس 24 ولت dc (که برای جک درب پارکینگ مورد استفاده قرار میگیره) رو میتوان کنترل کرد البته من نیاز به 2 تا دکمه دارم که با فشردن یکی موتور چپگرد و با فشردن دیگری موتور راستگرد بچرخد ممنون میشم راهنمایی فرمایید

    سوال : میشه دکمه گذاشت کاره چپگرد راستگرد موتور رو انجام داد ؟ اگر میشه چه طوری ممنون میشم جواب دهید
    برای خرید اسمه محصول چیه بخواهیم سفارش بدیم و قیمت محصول چقدره

    1396-05-02 در 12:53
    • ادمین الکترو ولت پاسخ

      سلام بله میشه برای راهنمایی بیشتر در تلگرام پاسخگو خواهم بود

      1396-05-03 در 20:25

دیدگاهتان را بنویسید

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

بازگشت به آموزشگاه