رایگان ثبت نام کنید ، 35000 تومان اعتبار بگیرید!!! خرید اشتراک ویژه

راه اندازی استپر موتور با L298 و میکرو AVR

در این پست از سایت حمید وب اپ , راه اندازی استپر موتور یا موتور پله ای را با استفاده از ای سی درایور L298 و میکروکنترلر AVR اموزش خواهیم داد. تفاوت استپر موتور با موتورهای DC معمولی در این است که بر خلاف موتور های DC معمول دارای جاروبک یا براش (brush) استپر موتورها نوعی موتورهای براشلس یا بدون جاروبک هستند. همچنین موتورهای DC برای رسیدن به دور در دقیقه (RPM) بالا طراحی می شوند ولی استپر موتورها برای رسیدن به گشتاور (torque) بالا طراحی شده اند و در نتیجه این طراحی سرعت پایین تری دارند اما در مجموع حرکت آنها دارای دقت بیشتری است. استپر موتورها دارای کاربردهای مختلفی می باشند و در دستگاه هایی که نیاز به دقت دارند مانند CNC و یا پرینترهای 3D و… استفاده می شوند.

 

شماتیک با استفاده از ای سی l298 :

 

برنامه پروژه با کدویژن :

ما در این پروژه از میکروکنترلر ATmega16 با فرکانس داخلی 1 مگاهرتز استفاده کرده ایم. پین ها 0 تا 3 از پورت C برای اتصال به ماژول باید خروجی باشند و پین 0 پورت A را برای اتصال کلید باید ورودی کنیم و مقاومت بالاکش ان را هم فعال کنیم. در زیر برنامه نهایی این پروژه را مشاهده می کنید :

#include <mega16.h>
#include <delay.h>
void main(void)
{
unsigned char step[8]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};//ارايه روبرو شامل 8 مقدار مي باشد که براي راه اندازي استپر موتور بايد اين مقادير به ترتيب به پايه هاي استپر موتور اعمال شود//
int i ;//FOR تعريف متغير براي شمارنده حلقه//
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (1<<PORTA0);
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
while (1)
{
if(PINA.0==1) {//زده نباشد شرط روبرو اجرا مي شود A در صورتي که کليد متصل به پين 0 پورت//
for(i=0;i<=7;i++)
{
PORTC=step[i];//مي ريزد C دستور روبرو مقادير ارايه بالا را به ترتيب روي پورت//
delay_ms(2);
}
}
if(PINA.0==0) {//زده باشد شرط روبرو اجرا مي شود A در صورتي که کليد متصل به پين 0 پورت//
for(i=7;i>=0;i)
{
PORTC=step[i];//مي ريزد C دستور روبرو مقادير ارايه بالا را به ترتيب روي پورت//
delay_ms(2);
}
}
}
— در سورس دانلود وجود دارد .
دانلود باکس
درباره این مطلب نظر دهید !
error: