PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کنترل موتور



yalda88
07-04-2010, 20:24
سلام
برنامه ی نوشتم برای حرکت موتورها
دوتا موتور روشن بشود حرکت به راست و چپ داشته باشد
برنامه اش ناقصه اجرا نمیشه لطفا راهنمایی کنید
زمین و در proteus پیدا نمیکنم؟
موج pwm رو میخوام به پایه 4و5 میکرو اعمال کنم که به enable درایور وصله چه جوری اینکارو انجام بدهم؟

/


#include <mega16.h>
#include<delay.h>
// Declare your global variables here


void MOTOR_FRONT()//MOVE MOTOR FRONT
{
//PORTD.0=1;
//PORTD.1=1;
//PORTD.2=0;
//PORTD.3=1;
//PORTD.4=1;
//PORTD.5=0;
}


void MOTOR_RIGHT()//MOVE MOTOR RIGHT
{
PORTD.0=1;
PORTD.1=0;
PORTD.2=0;
PORTD.3=1;
}

void MOTOR_LEFT()//MOVE MOTOR LEFT
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=1;
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0x3F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 15.625 kHz
// Mode: Fast PWM top=FFh
// OC0 output: Disconnected
TCCR0=0x63;
TCNT0=0x00;
OCR0=10;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
// Place your code here
int i=0;
for(i=0; i<10000; i++)
{ MOTOR_FRONT();}
delay_ms(5000);

for(i=0; i<10000; i++)
{ MOTOR_RIGHT();}
delay_ms(5000);


for(i=0;i<10000;i++)
{MOTOR_LEFT();}
delay_ms(5000);
};
}

rn4j1m1
16-04-2010, 03:23
از تایمر ها استفاده کن

morteza_rk
16-04-2010, 04:22
سلام

برای اطلاعات بیشتر به تاپیک زیر یه سر بزنید. من توی پست 202 یه برنامه گذاشتم. با فایل شبیه سازی.

You can see links before reply %8C%D8%B1&page=6

1nafar
16-04-2010, 08:09
سلام
توی ادرس زیر هم میتونید اموزش کامل نرم افزار پروتوس رو دانلود کنید :
You can see links before replyدانلود-پروتوس-7-6-سرویس-پک4-کتابخانه-اموز-81.html

shirin-robot
21-02-2011, 09:49
سلام
برنامه ای برای کنترل موتور سرو با این تنظیمات دارم
TCCR1A=0x80;
TCCR1B=0x12;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0xFF;
ICR1L=0x20;
OCR1AH=0x03;
OCR1AL=0xE8;
OCR1BH=0x00;
OCR1BL=0x00;
و اصل برنامه
while (1)
{
for(OCR1A=1000;OCR1A<5000; OCR1A++)
{
delay_ms(1);
}
}
از تنظیمات رجیسترهای تایمر 1 سر در نمی اورم این برنامه حدودا 40 درجه موتور را میچرخاند هرچقدر مقادیر رجیستر
ocr1
را تغییر میدهم نتیجه ی خاصی نمیدهد
نوع کارکرد رجیستر
icr
را در برنامه نمیدانم
لطفا راهنمایی کنید

ljah
04-12-2011, 10:59
سلام خسته نباشید میخواستم بپرسم ارتباط بین موتور و چرخ ها چگونه برقرار میشه یا به عبارتی چطوری چرخ ها حرکت میکنند؟
باتشکر

ljah
04-12-2011, 11:01
راستی دوست عزیز برای زمین در پروتئوس از ابزارهای سمت چپ صفحه ترمینال رو انتخاب کنید داخل اون گراند رو میتونید ببیند .
موفق باشید.