xipu 发表于 2005-10-8 10:01:53

步进电机的控制,附程序和原理图,请帮我看看哪里错了,谢谢!

原理图(其中晶振电容改为20p)

http://cache.amobbs.com/bbs_upload782111/files_4/armok0176506.jpg

步进电机为两相六线



程序:(修改双龙提供的)

#include <avr/io.h>

#define uchar unsigned char

#define uint unsigned int

uchar np;

//步进电机运行数据表

const uchar motortb[]={0xfa,0xf6,0xf5,0xf9};

void delay(uchar t)// 每步延时的子程序

{

uchar i;

uint j;

for (i=0;i<t;i++)

for (j=0;j<900;j++);

}

void a_step(uchar d,uchar t) //步进电机走一步d=0 正转d=1 反转 t 越大走得越慢

{

if (d&0x01)

{

if (np==0)

np=3;

else np--;

}

else

{

if (np==3)

np=0;

else np++;

}

PORTC=motortb;

delay(t);

}

void a_turn(uchar d,uchar t)// 步进电机走一圈

{

uchar i;

for (i=0;i<96;i++)

a_step(d,t);

}

void main(void)

{

DDRC=0x0f;

PORTC=0xf5;

np=2;

while (1)

a_turn(1,1);

}



写完程序后用avr studio 4.12 bulid 生成default目录下的 .hex文件下载到M8

下载线用4个330电阻自制的那种,不过把18、19和20-25都接地了,下载正常。

熔丝位设置:cksel3..0 改为 1101其他默认



可是电机不能运行,大家能帮我看看哪里错了吗?第一次就不成功,唉!多谢!

注:我没有仿真器:(

gxltt 发表于 2005-10-8 11:35:28

都不振动吗?

janue 发表于 2005-10-8 13:07:18

本人没有做过,下面只是一些看法,不保正确,只能参考:

const uchar motortb[]={0xfa,0xf6,0xf5,0xf9};

这个好像有点不妥

四相四拍好像是:const uchar motortb[]={0xf1,0xf2,0xf4,0xf8};

四相八拍好像是:const uchar motortb[]={0xf1,0xf3,0xf2,0xf6,xf4,0xfc,0xf8,0xf9};

GodCause 发表于 2005-10-8 14:10:55

电路就错了,步进电机根本就没供电。

步进电机的针座现在空的2个脚应该接电源,合起来接到5V上!

表格是正确的!

xipu 发表于 2005-10-9 10:25:03

晕死,呵呵,多谢!

但是如果两相四线又怎么供电呢?

xipu 发表于 2005-10-9 11:29:56

仔细看了下步进电机的一些知识,终于知道了:)

xipu 发表于 2005-10-10 09:46:07

还有一个地方错了,晕!低电平复位我弄反了!哈哈,电机转起来了!

lvshiliang 发表于 2005-10-27 20:19:17

请教楼主,程序是好着的?对吧。只是线没接好?

xipu 发表于 2005-10-27 21:21:32

程序没有问题。

zuoxiqing 发表于 2006-5-30 22:26:14

我试验了一下,电机无法自启动,当借助外力转动后才开始运转,不知道怎么回事?请高手指教!

c551 发表于 2006-6-11 14:35:27

是不是起动的频率太快了. 应设个加速起动的过程.

yourston 发表于 2006-6-11 14:54:21

好好

hayuda 发表于 2006-9-12 22:47:33

请问楼主你驱动的步进电机是双极性2相 6线????还是单极性 4相6线??

TrueElement 发表于 2007-4-17 13:28:28

楼主能不能把最后的图和程序发发,我现在也在玩玩步进电机,是两相四线的,但就是不动,程序和电路跟你原先的差不多

xingcn 发表于 2007-4-17 14:31:58

楼上,两相四线不能用ULN2003驱动,要用两个H桥驱动。

xiaobendan 发表于 2007-4-18 07:37:08

要有续流二极管的否则2003会很热的
页: [1]
查看完整版本: 步进电机的控制,附程序和原理图,请帮我看看哪里错了,谢谢!