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

شنبه 29 شهرویور 1393  •  دسته بندی: پروژه های آماده با میکروکنترلر AVR  •  بازدیدها: 4877  •  برچسب ها: | | |

هدف پروژه: درایو کردن موتور dc. روند کار از این قرار است یک موتور داریم که به آی سی درایو وصل است. 2 عدد هم پوش باتن داریم. پوش باتن اول باعث روشن خاموش شدن موتور می شود. پوش باتن دوم باعث حرکت چپگرد، راستگرد می شود.

سخت افزار مورد استفاده: در این پروژه از برد آموزشیavr شرکت نامینیک، مبتنی بر تراشه ATMEGA32 استفاده شده است. از آن جایی که پایه های میکرو بیشتر از 40 میلی آمپر نمی توانند خروجی دهند، برای یک الکترو موتور که آمپر بالایی می کشد مناسب نیستند. در بورد یک عدد آی سی L298 وجود دارد که به میکرو در جریان دهی و کنترل موتور کمک می کند. پایه های کنترلی این آی سی به پین های صفر تا 5 پورت c وصل است. آی سی می تواند دو موتور را درایو کند. پایه های 5، 7، 10 و 12 آی سی (به ترتیب همان پایه های متصل به پین های 0 تا 3 پورت c) برای کنترل موتور است. پایه 5 و 7 برای یک موتور و پایه 10 و 12 با همان عملکرد برای موتور دیگر است. البته برای جریان کشی بیشتر می توان دو به دو این 4 پایه را موازی کرد و دو پایه به دست آورد. در این صورت دو خروجی آی سی هم تحت یک کنترل قرار گرفته و می توانند با هم یکی شوند. در این حالت طبق دیتاشیت آی سی، می توان با حد اکثر ولتاژ 46 ولت 4 آمپر جریان کشید. زوج پایه قدرت خروجی به ترتیب پایه های (2 و 3) و (13 و 14) آی سی است. این آی سی دو پایه کنترلی مهم دیگر هم دارد پایه های 6 و 11 (به ترتیب به پین های 4 و 5 پورت c وصل هستند). این دو پایه یکی برای فعال شدن پایه های کنترلی و قدرت موتور اول و دیگری برای فعال شدن پایه های کنترلی و قدرت موتور دوم است که باز هم می توان هر دو را به هم وصل کرد. ما فقط از پایه های موتور دوم استفاده می کنیم. یعنی پین های 2 ، 3 و 5 پورت c و خروجی قدرت آسی برای موتور اول که به یک کانکتور در روی برد به نام m1 وصل است. توضیح دو پایه از آی سی که  به پین 2 و 3 پورت  cمتصل است این است که اگر اولی 1 باشد و دومی صفر موتور راستگرد کار می کند و اگر اولی صفر باشد و دومی 1 موتور چپگرد کار می کند. اگر هر دو مقدار مساوی داشته باشند، موتور توقف سریع خواهد داشت و اگر هر دو مساوی بوده و پایه ENB صفر باشد، موتور توقف معمولی خواهد داشت. برای کلید ها از 2 عدد پوش باتن روی برد به شماره های s3 و s6 استفاده می کنیم.

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

تشریح کد: در تابع main و در حلقه while میکرو شروع به خواندن وضعیت 2 پوش باتن می کند. برنامه به گونه ای است که اگر کلیدی فشرده شد، تا کاربر دستش را از کلید بر ندارد، کاری انجام نمی شود. در خطوط 40تا 47 برنامه به ترتیب فقط فشرده شدن کلید های s3 و s6 برسی می کند. در خطوط 49 تا 53 تابع start_stop() در هنگامی که کاربر دستش را از کلید s3 برداشت، صدا زده می شود. در تابع اگر موتور روشن باشد آن را خاموش می کند و اگر قبلش خاموش بوده آن را روشن می کند (با همه لج دارد!). خطوط 55 تا 66 هنگامی اجرا می شود که کاربر دستش را از کلید s6 بردارد. در این خطوط ابتدا موتور ایست سریع می کند و بعد از زمان چند میلی ثانیه صبر (حلقه for بدون بدنه) جهت حرکت موتور معکوس می شود.

 


 

دانلود سورس کد

در  اینجا شما میتوانید سورس برنامه را دریافت ،کامپایل و پروگرم نمایید و شاهد عملکرد برنامه باشید.

با کلیک بر روی عکس زیر فیلم راه اندازی این پروژه را مشاهده کیند.

این مطلب را به اشتراک بگذارید:

نظری در این باره وجود ندارد، شما می توانید اولین کسی باشید که نظر می دهید.
نام:
ایمیل:
نظر: