شبیه سازی سروو موتور در پروتئوس

ما در قسمت های قبل با کنترل موتور DC در پروتئوس و کنترل استپر موتور در پروتئوس آشنا شده ایم. در این مقاله میخواهیم یک سروو موتور را در پروتئوس شبیه سازی کنیم. به عنوان میکروکنترلر ما از PIC استفاده میکنیم شما میتوانید از میکروکنترلر AVR یا برد آردوینو و … استفاده کنید.
قسمت قبل: شبیه سازی عملکرد استپر موتور در پروتئوس
میکروکنترلری که قرار است در این آموزش استفاده کنم PIC16F877A است. در این آموزش یک مدار برای کنترل سروو موتور طراحی می کنم و همچنین کدی را که برای کنترل سروو موتور استفاده کرده ام ارائه خواهم کرد. اگر روی موتور سروو کار می کنید، پیشنهاد میکنم مقاله کنترل سروو موتور با آردوینو را نیز بررسی کنید. که در آن یک مدار کنترل سروو موتور با استفاده از برد آردوینو طراحی شده است.
معرفی مختصری درباره موتور سروو
سروو موتور یک نوع موتور محبوب دیگری است که سیستم کنترل بسیار بهتری در آن نصب شده است. زیبایی سروو در حرکت زاویه ای دقیق آن نهفته است. مثلا شما میخواهید شافت سروو موتور در زاویه 30 درجه قرار بگیرد. با تنظیم ولتاژ میتوانید به راحتی و با سرعت بالا این تنظیم زاویه را انجام دهید. همین ویژگی آن ها را برای سیستم های خودکار یا ربات ها بسیار مفید و مناسب میکند.
علاوه بر این سروو موتور فقط 3 سیم برای کنترل دارد، یکی GND، یکی Vcc و سومی که معمولا وسط است برای اهداف کنترلی استفاده میشود. حالا وقتی سیگنال را به سیم وسط اعمال می کنید، شافت سروو موتور شروع به حرکت می کند. حال، اینکه چقدر حرکت خواهد کرد بستگی به طول سیگنال اعمال شده دارد. اگر سیگنال اعمال شده کوچک باشد، فاصله کمی را پوشش می دهد.
مدار کنترل سروو موتور در پروتئوس
اول از همه اجزای زیر را از کتابخانه Proteus انتخاب کرده و در فضای کاری خود اضافه کنید.

در طراحی این شبیه سازی از این مولفه ها استفاده می شود:
- PIC16F877a
- Servo Motor
- Crystal Oscillator (16MHz)
- 3*Resistors
- 2*Capacitors
- 2* Push Buttons
اکنون مدار خود را مطابق شکل زیر طراحی کنید:

هنگامی که من این شبیه سازی را شروع کردم، موتور به زاویه -90 درجه حرکت کرد. حالا وقتی دکمه را فشار می دهم در جهت مخالف حرکت می کند.
کد میکروکنترلر PIC برای کنترل سروو موتور
در اینجا کدی است که من برای کنترل این سروو موتور استفاده کرده ام. این کد را در میکروکنترلر PIC خود پروگرام کنید.
#define M1 PORTB.F7
#define M2 PORTB.F6
#define B1 PORTD.F0
#define B2 PORTD.F1
int a;
void main() {
TRISB=0;
TRISD=0xFF;
PORTB = 0;
a = 1;
while(1){
if((B1 == 0) && (a==1)){
PortB=0xFF;
delay_ms(100);
PortB=0x00;
delay_ms(1);
PortB=0xff;
a=0;
}
if(B2 == 0){
PortB=0x00;
}
}
} امیدوام درک کرده باشید چطور سروو موتور را در پروتئوس کنترل کنید.
قسمت بعد:







