کنترل موتور DC در نرم افزار پروتئوس
امروز نحوه طراحی مدار کنترل موتور DC را بررسی می کنیم. موتور DC در Proteus وجود دارد و استفاده از آن بسیار آسان است. ابتدا با اعمال ولتاژ در دو طرف آن یعنی به روش مستقیم آن را به سادگی راه اندازی می کنیم و سپس آن را خودکار کرده و مدار را با استفاده از میکروکنترلر PIC هدایت می کنیم. میکروکنترلری که قرار است استفاده کنیم PIC16F877A است.
قسمت قبل: مدار منبع تغذیه متغیر با LM317 در پروتئوس
این آموزش روش صحیحی برای کنترل همه موتور های DC نیست. در این آموزش، من فقط یک نمای کلی از نحوه طراحی مدار درایو موتور DC در نرم افزار پروتئوس آموزش می دهم. بنابراین، آن را در سخت افزار امتحان نکنید. موتور DC یک موتور ساده است که به اختلاف قطبیت در دو سر خود نیاز دارد. اگر این قطبیت در جهت معمولی باشد، موتور DC در یک جهت حرکت می کند و اگر قطبیت را معکوس کنیم، موتور DC در جهت مخالف حرکت می کند.
مدار کنترل موتور DC در پروتئوس
اول از همه من نحوه کنترل ساده موتور DC در نرم افزار پروتئوس را به شما نشان می دهم تا ایده ای برای نحوه کار این موتور پیدا کنید. این دو جزء را از کتابخانه Proteus اضافه کنید:
- Motor
- Logic State
Logic State دارای دو حالت 1 و 0 است. 0 آن به معنای 0 ولت و زمانی که در 1 است به معنای 5 ولت است.
حالا مدار را مطابق شکل زیر طراحی کنید:
اکنون دو Logic State به دو طرف موتور اضافه کرده ام. جهت موتور به وضعیت این دو بستگی دارد. بنابراین، آنها در مجموع چهار حالت خواهند داشت:
- هنگامی که هر دو حالت در 0 هستند، موتور حرکت نمی کند و ثابت می ماند.
- هنگامی که هر دو حالت در 1 هستند، موتور حرکت نمی کند و ثابت می ماند.
- موتور در جهت عقربه های ساعت حرکت می کند زمانی که Logic State بالا در 1 و پایینی در 0 باشد.
- هنگامی که Logic State بالا در 0 و پایینی در 1 باشد، موتور در خلاف جهت عقربه های ساعت حرکت می کند.
کنترل موتور DC با میکروکنترلر PIC
اکنون موتور خود را با استفاده از میکروکنترلر PIC هدایت می کنیم، اجزای زیر را از کتابخانه Proteus اضافه می کنیم.
این قطعات را به هم متصل کنید و مداری را مانند شکل زیر بسازید:
اکنون یک پروژه جدید در MikroC Pro For PIC ایجاد کنید و کد زیر را به آن اضافه کنید.
#define M1 PORTB.F7 #define M2 PORTB.F6 #define B1 PORTD.F0 #define B2 PORTD.F1 void main() { TRISB=0; TRISD=0xFF; PORTB = 0; while(1){ if(B1 == 0){PortB=0xAA;} if(B2 == 0){PortB=0x55;} } }
حال فایل هگز این پروژه را در میکروکنترلر پروتئوس قرار دهید. اگر همه چیز خوب پیش رفته باشد، با کلیک بر روی یک دکمه، موتور در جهت عقربههای ساعت حرکت میکند و با کلیک بر روی دکمه دیگر، موتور در خلاف جهت عقربههای ساعت حرکت میکند.
قسمت بعد: