مقالات --» ساختمان ژنراتور سنکرون

 

پروژه کنترل سرعت موتور DC با استفاده از موج  PWM

پس از اجرای این پروژه با موارد زیر آشنا خواهید شد:

نحوه تولید موج PWM توسط میکروکنترلر

طرز استفاده از تراشه راه اندازی L293D در مدار

نحوه اتصال میکروکنترلر به تراشه L293D

هدف پروژه

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

مدار الکتریکی پروژه

این مدار شامل یک تراشه L293D است که از سویی به میکروکنترلر A Tmega16 و از سویی دیگر به یک موتور DC وصل شده است (شکل 1).

madar kontorol motor DC tavasote moje PWM.gif

شکل 1: مدار کنترل موتور DC توسط موج PWM

برنامه در محیط Code Vision

در ابتدا برای شروع برنامه نویسی باید نوع پورت ها در محیط Code WizardA V R تعیین کنید. برای این کار گزینه New را از منوی File انتخاب کنید و در پنجره باز شده گزینه Project را فعال کنید، سپس در پنجره باز شده دکمه  Yes را فشار دهید. در ادامه در زبانه Chip ، میکروکنترلر Atmega16 را  انتخاب کنید و در زبانه Ports ، پایه ها را به صورت نشان داده شده در شکل 2 پیکربندی نمایید.

حال برای ایجاد موج PWM ، از تایمر صفر استفاده کنید و آن را مانند شکل 3 پیکربندی نمایید.

peykarbandi.gif

شکل 3: پیکربندی ایجاد موج PWM                             شکل 2: پیکربندی پایه های پورت D

توجه: به علت استفاده از PORTB.3 به عنوان تولید کننده PWM، این پایه را به صورت خروجی پیکربندی کنید.

در ادامه از منوی File گزینه Generate,Save and Exit را انتخاب کنید و تغییرات نشان داده شده در برنامه را در آن اعمال نمایید تا نوشتن برنامه به صورت زیر به پایان برسد:

#include<mega 16.h>
#include<delay.h>
void main(void)
{int i;
PORTB=0x00;
DDRB=0x08;
PORTD=0x00;
DDRD=0x03;
//Timer/Counter 0 initialization
//Clock source:system Clock
//Clock value: 15.625 kHz
//Mode:Fast PWM top=FFh
//OC0 output: Non-Inverted PWM
TCCR0=0x6C;
TCNT0=0x00;
OCR0=0x00;
while(1)
{

با تعیین پایه های پورت به صورت صفر و یک، موتور در جهت مستقیم خواهد چرخید:

PORTD.0=1;
PORTD.1=0;                                                                                                                                                                                                                                

با این حلقه، سرعت موتور به تدریج از صفر تا 12V افزایش خواهد یافت:

for(i=1;i<255;i++)
{
OCR0=i;
delay_ms(40);
}

با این حلقه، ولتاژ دو سر موتور از 12V به صفر کاهش خواهد یافت:

for(i=255;i>1;i--)
{
OCR0=i;
delay_ms(40);
}

با این دستور، موتور متوقف خواهد شد:

OCR0=0;

موتور به مدت 1 ثانیه متوقف خواهد شد:

delay_ms(1000);

با این دو دستور، جهت چرخش موتور تغییر خواهد کرد:

PORTD.0=0;
PORTD.1=1;

با این حلقه، سرعت موتور به تدریج از صفر تا 12V افزایش خواهد یافت:

for(i=1;i<255;i++)
{
OCR0=i;
delay_ms(40);
}
 };
}

توجه: بخشهایی از برنامه که به صورت پررنگ نشان داده شده، به برنامه اولیه ایجاد شده توسط محیط Code WizardA V R، اضافه شده اند.
 
برنامه در محیط BASCOM-AVR
 
$regfile="m16def.dat"
$crystal=4000000
Config Ported=Output
 Confing Timer=Pwm , Pwm=8 , Compare A Pwm =Clear Down, Prescale=256
Dim Cnt As Word
Portd.1=1
Portd.1=0
For Cnt=0 To 255
Pwmla=Cnt
  Waitms 40
Next
For Cnt = 255 To 0 Step -1
  Pwmla=Cnt
  Waitms 40
Next
Pwmla=0
Wait 1
Portd.1=0
Portd.1=1
For Cnt=0 To 255
  Pwmla= Cnt
  Waitms 40
Next
End         'end program

توجه: از آنجا که در کامپایلر  BASCOM-AVR نمی توان از تایمر صفر برای ایجاد موج PWM استفاده کرد. از تایمر یک استفاده شده است. همچنین در مقدار الکترنیکی پروژه نیز باید پایه 5 از پورت  D به پایه Enable تراشه  L293D وصل شود.
شرح برنامه
در این پروژه ابتدا پایه های ورودی تراشه L293D را طوری تحریک می کنیم که موتور در جهت مستقیم حرکت کند. سپس سرعت موتور را با تغییر چرخه کاری موج PWM از صفر تا صد در صد، از صفر تا مقدار ماکزیمم افزایش می دهیم، بعد به همین ترتیب سرعت آن از مقدار ماکزیمم تا صفر کاهش داده می شود. پس از رسیدن سرعت آن به صفر با تغییر جهت موتور دوباره پروسه قبلی تکرار می شود.
پروژه استفاده از موتور پله ای در ساعت عقربه ای
پس از اجرای این پروژه با موارد زیر آشنا خواهید شد:
نحوه تحریک سیم پیچ های موتور پله ای
نحوه استفاده از تراشه ULN2803
هدف پروژه
در این پروژه، از یک موتور پله ای با دقت 8/1 درجه برای ساخت ساعت عقربه ای استفاده شده است و در حقیقت به عنوان موتور ساعت عقربه ای در نظر گرفته  می شود و در هر ثانیه یک دور کامل می زند. با توجه به اینکه دقت موتور 8/1 درجه است، باید 200 پله بچرخد تا یک دور کامل بزند؛ به عبارتی باید هر 5MS یک پله بچرخد تا در مجموع در هر ثانیه یک دور کامل بزند.
مدار الکترونیکی پروژه
این مدار از یک تراشه ULN2803 تشکیل شده که از سویی به میکروکنترولر A Tmega8 و از سویی دیگر به یک موتور پله ای وصل شده است (شکل4) همچنین توجه داشته باشید که به جای تراشه ULN2803 می توانید از آی سی های مشابه مانند L293 یا چند ترانزیستور استفاده کنید.
madare porezhe saate aghrabei.gif
شکل 4: مدار پروژه ساعت عقربه ای
برنامه در محیط code VisionA V R
برای شروع برنامه نویسی کافی است که پایه های 1 تا 4 پورت D  به صورت خروجی پیکربندی شوند. همچنین دقت داشته باشید که در زبانه chip در محیط code VisionA V R، نوع میکروکنترلر را  A Tmega8 با فرکانس کاری 4MHZ انتخاب کنید.
#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTD=0x00;
DDRD=0x0F;
PORTD=1;
while(1)
{
if (PORTD= =8)
PORTD=1;
else
PORTD=PORTD*2;
delay_ms(5);
};
}

برنامه در محیط BASCOM-AVR

$regfile="m8def.dat"
$rystal=8000000
Config Portd = Output
Portd = 1
Do
if Portd = 8 Then
Portd = 1
Else
Portd = Portd * 2
End If
Waitms 5
Loop
    END  'end progrom

شرح برنامه

در این برنامه از روش موجی برای راه اندازی موتور پله ای استفاده می شود؛ در نتیجه در هر مرحله باید یکی از سیم پیچ های موتور پله ای تحریک شود. از آنجا که هر کدام از این سیم پیچ ها به ترتیب به پایه های D0 تا D3 میکروکنترلر وصل شده اند، در هر مرحله باید یکی از این پایه ها یک باشد. حال به جای مقداردهی به یک پایه از پورت D، کل پورت D را مقدار دهی می کنیم. برای مثال اگر بخواهیم فقط D0 برابر با یک شود، کافی است که پورت D به صورت 00000001 در مبنای دو (یا 2 در مبنای ده ) مقدار دهی می شود. به همین ترتیب برای یک کردن پایه های D2 و D3 به ترتیب کل پورت D به صورت 00000100 و 00001000 در مبنای دو (و یا 4 و 8 در مبنای ده ) مقداردهی می شود.

بدین ترتیب با تحریک متوالی هر یک از پایه های D0 تا D3 میکروکنترلر موتور پله ای در هر مرحله یک پله به جلو حرکت خواهد کرد.

در بین هر مرحله از تحریک، یک تأخیر 5 میلی ثانیه ای در نظر گرفته شده است تا سیم پیچ ها زمان کافی برای تحریک را داشته باشند.    

دانلود اطلاعات تکمیلی



.

© 1389 تمام حقوق این سایت متعلق به شرکت مهندسی نوین تجارت می باشد
میزبانی و طراحی وب توسط گروه نرم افزاری رنگارنگ