如何实现步进电机的正、反转功能

如何实现步进电机的正、反转功能?并且随着时间的推移周期重复?

1、可以使用表控TPC4-4TD的控制器来实现,参考下图接线:

接线很简单,参考接线图接线。表控与驱动器的接线只有三根线,5V、Y1和Y2,分别连接步进电机驱动器的输入信号端,5V连接步进电机驱动器输入信号的正极,Y1连接脉冲输入信号的负极,Y2连接方向输入信号的负极。

2、功能设置

在电脑的功能设置表上设置的正反转功能,见下图:

第1行设置X1作为启动开关,由Y1输出脉冲,频率2000赫兹,脉冲数是2000。如果驱动器细分设置为2000,设置脉冲数为2000正好转一圈。

第2行设置延时1秒,作为正反转间隔的时间。

第3行设置Y2输出方向信号10秒钟,由脉冲结束时关闭此行。

第4行设置的与第一行相同,由于与第3行的方向输出端同事被第2行延时后启动,因此第3、4行实现反转的功能。反转一圈回到原位。

下图是自动生成的汉字显示:

使用表控作为步进电机控制,有几个有点:接线方便、设置简单,表格设置方法代替编程,没学过编程的人员也可以使用。更多功能可以查看详细说明书和视频教程。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-08
控制脉冲的顺序就能控制正反转,如下面的 for(i=0;i<4;i++)变成 for(i=3;i>=0;i--)变反向转
控制延时就能控制转速,如下面的 delay(200)。

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code s[]={ 0x88,0x22,0x44,0x11 };
void delay(uint z)
{ uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{ int i;
while(1)
{ for(i=0;i<4;i++)
{ P2=s[i];
delay(200);
}
}
}
第2个回答  2010-06-25
你选的步进电机的控制方式是什么
脉冲+方向(常见的集电极开路输出)?
脉冲+脉冲(常见的差分电路输出)?
脉冲递增方式?
不同的控制方式的正反转的方法不一样
周期重复只是给脉冲的数量给个限制罢了
第3个回答  2010-06-23
步进电机的控制一般使用现有的集成块,比如L297,你可到下面去下载说明:

http://www.21icsearch.com/s_L297.html

在L297中(CW/CCW)就是正、反转控制端,输入高电平或低电平就决定步进电机的正反向。

一般不用自己设计。如果一定要自己搞步进电机的控制,比如:
1、如果采用计数器的方式,加法计数是正向,减法计数就是反向,
2、如果采用循环码计数器,循环计数的方向就是步进电机的转向。本回答被网友采纳
相似回答