Welcome to our forum. We hope you can find something useful. For more information please contact nhuphuzz@yahoo.com
 
Trang ChínhPortalCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập
Forum hiện không còn được cập nhật. Những tài liệu cần thiết nếu các bạn cần có thể gửi mail yêu cầu cho ad, ad sẽ cố gắng giúp cho các bạn trong khả năng có thể. Email: nhuphuzz@yahoo.com


Share | 
 

  trợ giúp chương trình điều khiển động cơ bước????

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: trợ giúp chương trình điều khiển động cơ bước????   12/05/11, 10:59 pm

#include
void Delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<100;i++)
for(j=0;j }

/* dieu khien dong co buoc*/
unsigned char m[]={0x01;0x02;0x04;0x08};
unsigned int a,b;
void main()
{
while (1)
{
for (a=0;a<6;a++)
for (b=0;b<4;b++)
{
P0=m[b];
delay(1000);
}
}
}


mình muốn động cơ bước quay sao cho chỉ nhìn thấy động cơ quay 45 độ, như vậy là mỗi lần quay được 25 bước mỗi bước quay 1.8 độ, mà mình làm không chạy, mong các bạn trợ giúp mình
cảm ơn mọi người
Về Đầu Trang Go down
Xem lý lịch thành viên
nhuphuzz
Admin
Admin
avatar

Tổng số bài gửi : 432
Points : 8559
Reputation : 17
Join date : 18/10/2010

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   13/05/11, 12:08 am

post cái sơ đồ kết nối phần cứng lên xem nào. Xem có giúp được gì không

Làm 25 bước thì thử cách này xem sao

void main()
{
while (1)
{
for (a=0;a<6;a++)
for (b=0;b<4;b++)
{
P0=m[b];
delay(1000);
c++;
if c>24 then
c=0;
break;
}
}
}

Ý tưởng của mình là mỗi khi động cơ quay một bước thì tăng biến c lên. nếu tăng lên 25 lần thì đủ yêu cầu và dùng lệng break để thoát khỏi vòng lặp. Có thể phải dùng thêm một vài lệnh break nữa để thoát hết những vòng lặp đó.

_______________________http://spkt10301.tk___________________________
Tôi sống để tạo nên những khác biệt tích cực cho bản thân tôi, cho gia đình, cho bạn bè và cho xã hội.
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   13/05/11, 03:10 pm

cảm ơn bạn Như Phú nhiều nhé
thiếu sót quá hj2 đây là sơ đồ mạch, hiện giờ mình chỉ test thôi. mong các bạn chỉ dùm nhé

[You must be registered and logged in to see this link.]


nhưng nó cứ trơ đi chứ không hoạt động gì cả????
Về Đầu Trang Go down
Xem lý lịch thành viên
nhuphuzz
Admin
Admin
avatar

Tổng số bài gửi : 432
Points : 8559
Reputation : 17
Join date : 18/10/2010

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   13/05/11, 05:36 pm

Sơ đồ kết nối như vậy thì bạn phải điều khiển bằng mức 0 chứ.
Sửa đoạn
unsigned char m[]={0x01;0x02;0x04;0x08};

thành unsigned char m[]={0x0E;0x0D;0x0B;0x07}
Xem sao nhé.

Mà hình như khi mô phỏng không cần dùng 2803 đâu. Chỉ cần dùng điện trở kéo lên là được rồi. Mà có cũng không sao. hi hi

_______________________http://spkt10301.tk___________________________
Tôi sống để tạo nên những khác biệt tích cực cho bản thân tôi, cho gia đình, cho bạn bè và cho xã hội.
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   14/05/11, 01:32 pm

mình dùng con đó là để nâng dòng thui mà nó là con đệm đảo nên có dữ liệu như vậy, nhưng mà mình thử rồi sao nó không chạy luôn ko biết thế nào đây?
phú đã làm cái này lần nào chưa? chỉ mình với nhé!
thank you!
Về Đầu Trang Go down
Xem lý lịch thành viên
nhuphuzz
Admin
Admin
avatar

Tổng số bài gửi : 432
Points : 8559
Reputation : 17
Join date : 18/10/2010

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   17/05/11, 07:03 pm

#include "reg52x2.h"


/*-----------------------------------------------------------------------------*/
//Ham delay
/*----------------------------------------------------------------------------*/
void delay (unsigned long time)
{
while (time--)
{
unsigned char j = 125;
while (j--);
};
}

/* dieu khien dong co buoc*/
unsigned char m[]={0x01,0x02,0x04,0x08};
unsigned int a,b=0,c=0;

void main()
{
for (a=0;a<25;a++)
{
P0=m[b];
delay(100);
b++;
if (b>3) b=0;
else continue;
};
loop:
goto loop;
}

Cái này là chạy đúng 25 bước rồi dừng nha.

_______________________http://spkt10301.tk___________________________
Tôi sống để tạo nên những khác biệt tích cực cho bản thân tôi, cho gia đình, cho bạn bè và cho xã hội.
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   17/05/11, 08:38 pm

cảm ơn phú nhiều nha!

nhưng mà phú đã test thử chưa? chứ mình thử mà nó không hoạt động gì cả??? không biết là nguyên nhân gì đây? nhờ phú test thử xem được không?
làm phiền phú nhiều quá hj2
Về Đầu Trang Go down
Xem lý lịch thành viên
nhuphuzz
Admin
Admin
avatar

Tổng số bài gửi : 432
Points : 8559
Reputation : 17
Join date : 18/10/2010

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   17/05/11, 09:26 pm

File mô phỏng nè. Động cơ sẽ dừng ở 42.3 độ. Do bị lùi nửa bước lúc khởi động. Nhưng cái chính là đoạn chương trình mình viết nó chạy đúng 25 bước he he.

Code:

http://www.mediafire.com/?v9khrl964ii5vdx

_______________________http://spkt10301.tk___________________________
Tôi sống để tạo nên những khác biệt tích cực cho bản thân tôi, cho gia đình, cho bạn bè và cho xã hội.
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   20/05/11, 12:57 am

thank you phú nha cuối cùng củng test xong nó chạy rùi
do sơ đồ khác nhau nên nó không chạy h chỉnh lại được rồi
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   20/05/11, 01:04 am

[You must be registered and logged in to see this link.]
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   20/05/11, 01:09 am

/* Dieu khien day chuyen dong nap chai dung dong co buoc
nhom:
TRAN THANH BINH MSSV: 10301005
NGUYEN THI LE HANG MSSV: 103010

*/
// 2 Chan dieu khien dong co la : P2_7
// 4 chan de dieu khien : start,stop, Tang toc, giam toc
// 2 chan bao hieu dong co dang o che do nao.

#include

/* Dinh nghia cac nut nhan*/
#define stop P1_0
#define start P1_1
#define tang P1_2
#define giam P1_3
#define daynap P1_6
#define dongnap P1_7



bit PWM;
unsigned char dem=0;
unsigned int phantram_PWM=10;
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ham tao thoi gian tre*/

void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<100;i++)
for(j=0;j }
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Hien thi gia tri tang giam toc*/
unsigned char LED[10]={0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xf8,0x80,0x10};
void hienthi(unsigned char digit1, unsigned char digit2)
{
/*Hien thi so thu nhat*/
P2=LED[digit1];
P3_4=1;
delay(2);
P3_4=0;
/*Hien thi so 2*/
P2=LED[digit2];
P3_5=1;
delay(2);
P3_5=0;
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

/* Khoi tao Timer 100us*/

void khoitaohethong()
{
//ES=1;
EA=0;
TMOD=0x02; // che do 8 bit tu nap
TH0=0x9b; // nap gia tri 155 ma hex
TL0=0x9b;
EA=1;
TR0=1;
ET0=1;
P1_4=0;
P0_0=0;
P0_1=0;
P0_2=0;
P0_3=0;
daynap=1;
dongnap=1;
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ngat tao ra PWM*/

void ngat_timer0(void) interrupt 1
{
TR0=0;
TF0=0;
dem++;
if(dem>=phantram_PWM)
{
PWM=1;
}
else
{
PWM=0;
}
if(dem==20) dem=0;
TR0=1;

}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ham stop dong co*/
void stopdc(void)
{
P1_4=0;
P3_2=0;
P3_3=1;
/*dong co buoc*/
P0_0=0;
P0_1=0;
P0_2=0;
P0_3=0;

/*day nap dong nap*/
daynap =1;
dongnap =1;


}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ham start dong co*/
void startdc(void)
{
P1_4=PWM;
P3_3=0;
P3_2=1;
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ham dieu khien tang toc*/
unsigned char tangtoc(void)
{
if(tang==0)
{
while(tang==0)
{;}
phantram_PWM--;
delay(100);
if(phantram_PWM<1)
{
phantram_PWM=1;

} }
return (phantram_PWM);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Ham dieu khien giam toc*/
unsigned char giamtoc(void)
{
if(giam==0)
{
while(giam==0)
{;}
phantram_PWM++;
delay(100);
if(phantram_PWM>20)
phantram_PWM=20;
}
return (phantram_PWM);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/* Lua chon che do cua dong co*/
unsigned char n;
unsigned char chonchedo(void)
{
if(stop==0) n=1;
if(start==0) n=2;

switch(n)
{
case 0: {break;}
case 1: {stopdc();break;}
case 2: {startdc();break;}
}
return (n);
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

/* ham dieu khien dong co buoc*/
unsigned char m[]={0x01,0x02,0x04,0x08};
unsigned int a,c,b=0;

void dongcobuoc()
{
c=0;
while(c<10)
{
for (a=0;a<25;a++)
{
P0=m[b];
delay(10);
b++;
if (b>3) b=0;
else continue;
};
delay(100);
daynap =0;
dongnap =0;
delay(1000);
daynap =1;
dongnap =1;
c++;
}
}
//chuong trinh dieu khien dong co bang tai
void dieukhientocdodc()
{

tangtoc();
giamtoc();
hienthi((20-phantram_PWM)/10,(20-phantram_PWM)%10);
}
/* Chuong trinh chinh*/
void main()
{
khoitaohethong();
chonchedo();
dongcobuoc();
dieukhientocdodc();
}


làm sao để toàn bộ chương trình này hoạt động đúng yêu cầu:
-khi bật nút start động cơ bước chạy, động cơ thường củng chạy và củng hiển thị tốc độ
??thức trắng bao đêm mà không hoàn thiện được thời hạn thì củng sắp tới huhu mong các cao thủ về lập trình c chỉ giáo nhé!
Về Đầu Trang Go down
Xem lý lịch thành viên
tran_binh
4 sao
4 sao
avatar

Tổng số bài gửi : 148
Points : 7943
Reputation : 9
Join date : 05/11/2010
Age : 29
Đến từ : nghệ an city

Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   20/05/11, 01:20 am

//////////http://www.mediafire.com/?8d3e5osc3k99mz0///////
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: trợ giúp chương trình điều khiển động cơ bước????   

Về Đầu Trang Go down
 
trợ giúp chương trình điều khiển động cơ bước????
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN CỦA LỚP 10301 ĐH SPKT TP HCM :: HỌC HÀNH :: Học Kỳ II :: Hệ thống thu thập dữ liệu và điều khiển-
Chuyển đến