PDA

View Full Version : cấp cứu động cơ bước


trienst
10-11-2012, 03:16 AM
em đang thực hiện mô phỏng động cơ bước, chỉ đơn giản là dùng bảng dịch trạng thái động cơ bước điều khiển nửa bước
code:
#include <stdio.h>
#include <stdlib.h>
#include <p18f452.h>
#include<delays.h>
#pragma config WDT = OFF, OSC = HS
void main()
{
TRISC=0x00;
PORTC=0x00;
TRISD=0xff;
while(1)
{
if(PORTDbits.RD0==0){
PORTC=0x10;
Delay10TCYx(2);
PORTC=0x50;
Delay10TCYx(2);
PORTC=0x40;
Delay10TCYx(2);
PORTC=0x60;
Delay10TCYx(2);
PORTC=0x20;
Delay10TCYx(2);
PORTC=0xa0;
Delay10TCYx(2);
PORTC=0x80;
Delay10TCYx(2);
PORTC=0x90;
Delay10TCYx(2);
}
//cambio di rotazione
if(PORTDbits.RD1==0){
PORTC=0x90;
Delay10TCYx(2);
PORTC=0x80;
Delay10TCYx(2);
PORTC=0xa0;
Delay10TCYx(2);
PORTC=0x20;
Delay10TCYx(2);
PORTC=0x60;
Delay10TCYx(2);
PORTC=0x40;
Delay10TCYx(2);
PORTC=0x50;
Delay10TCYx(2);
PORTC=0x10;
Delay10TCYx(2);
}
}
}
nhưng động cơ ko chạy, trễ khi nhấn nút rất nhiều, mong mọi người giúp đỡ

trienst
11-11-2012, 05:14 PM
mọi người vào xem cho ý kiến với ạ:(

qloi
18-11-2012, 09:30 PM
Mô phỏng thì gắn zậy được chứ ở ngoài mà gắn z chax cháy PIC wá.thứ nhất động cơ trong hình bạn xài là loại bipolar nên phải xài cầu H để điều khiển công suất , với loại này để chạy nửa bước thì bạn xài mảng này :half_step[]={2,10,8,9,1,5,4,6}; xài loại unipolar thì dễ hơn chỉ xài 4 transistor bật tắt luân phiên 4phase theo mảng này : half_step[] = {1,3,2,6,4,12,8};. Thứ 2 thời gian delay giữa mỗi bước phải phù hợp với tmin của động cơ , có nhiều động cơ đáp ứng nhanh nên thành gian này nhỏ khoảng 1ms , còn trước giờ t xài máy cái step thấy thời gian này vào khoảng 4ms. Thứ 3 , khi không nhấn nút thì nên đưa port C về 0 để tiết kiệm điện!