#include
unsigned
char
code
f_rotation[4]={0x08,0x10,0x20,0x40}//正转表格
unsigned
char
code
b_rotation[4]={0x40,0x20,0x10,0x08}//反转表格
void
delay(unsigned
int
i)//延时
{
while(--i)
}
main()
{
unsigned
char
i
while(1)
{
for(i=0i<4i++)
//4相
{
p1=f_rotation[i]
//输出对应的相运虚卖
可以自行换成反旁逗转表格
delay(500)
//改变这个参数可以调整电机转速
}
}
}
可以使用表控TPC4-4TD的控制器来实现,参考下图接线:
接线很简单,参考接线图接线。表控与袭让驱动器的接线只有三根线,5V、Y1和Y2,分别连接步进电机驱动器的输入信号端,5V连接步进电机驱动器输入信号的正极,Y1连接脉冲输入信号的负极,Y2连接方向输入信号的负极。
在电脑的功能设置表上设置的正反转功能,见下图:
第1行设置X1作为启动开关,由Y1输出脉冲,频率2000赫兹,脉冲数是2000。如果驱动器细分设置为2000,设置脉冲数为2000正好转一圈。
第2行设置延时1秒,作为正反转间隔的时间。
第3行设置Y2输出方向信号10秒钟,由脉冲结束时关闭此行。
第4行设置的与第一行相同,由于与第芹租3行的方向输出端同事被第2行延时后启动,因此第3、4行实现反转的功能。反转一圈回到原位。
下图是自动生成的汉字显示:
使用表控作为步进电机控制,有几个有点:接线方便、设置简嫌禅兆单,表格设置方法代替编程,没学过编程的人员也可以使用。更多功能可以查看详细说明书和视频教程。
1、有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以。
2、例程:
#include <reg51.h> //选用晶振11.0592MHzunsigned char k=0 //k表示正反转次数
sbit X0=P3^2 //调节按钮
sbit X1=P1^1 //上限位接近开关信号
sbit X2=P1^2 //下限位接近开关信号
sbit Y1=P0^0 岁局樱 //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电腊旁机点动的影响)
sbit Y2=P0^1 乎丛 //电机下降
void delay50ms(unsigned int i)
{
unsigned int j
for (ii>0i--)
for(j=46078j>0j--)
}
main()
{
IT0=1 //下降沿触发
EX0=1 //开P3.2外部中断
EA=1 //总中断开
while(1)
while(k)
{
Y1=0 //正转
while(X1==1) //等待正转接近开关反应
Y1=1 //正转停
delay50ms(1) //停止时间50ms
Y2=0 //反转
while(X2==1) //等待反转接近开关反应
Y2=1 //反转停
k-- //圈数减一
}
}
void counter0(void) interrupt 0
{
k++ //外部中断控制圈数加一
//这个位置可以加你显示程序
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)