单片机控制步进电机的原理?

单片机控制两相步进电机。但是不知道怎么样去控制,我这里有个控制器,说明书上说只要输入脉冲就可以了,但是我不知道脉冲的长度或者说宽度,怎么样办呢??比如,keil c 语言中,可以用 P1.0=0 ;P1.0=1;但是怎么样控制时间呢?
脉冲的时间怎么控制??

步进电机控制原理

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:

(1)控制换相顺序

通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。

(2)控制步进电机的转向

如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。

(3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。

步进电机是一种可以把脉冲激励的变化转换成精确转子位置增量运动的执行机构,它可将脉冲信号变成电机相应角位移的机械量,从而通过控制脉冲的个数来控制电机转动的时间,并通过改变脉冲的频率控制电机运转的速度。

参考资料:凌阳大学计划

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-03
五线(或六线)四相步进电机的驱动方式有好几种,你用的是半步驱动方式,也就是1-2拍驱动
只要改变定时器的初值就可以实现调速了
unsigned int sudu=500; //全局变量,控制速度
void timer0_isr(void) interrupt 1
{
static unsigned char times,i;
th0=(65536-sudu)/256; //控制速度
tl0=(65536-sudu)%256;
display(0,8);
if(times==speed)
{
times=0;
switch(i)
{
case 0:coil_a1;i++;break;
case 1:coil_ab1;i++;break;
case 2:coil_b1;i++;break;
case 3:coil_bc1;i++;break;
case 4:coil_c1;i++;break;
case 5:coil_cd1;i++;break;
case 6:coil_d1;i++;break;
case 7:coil_da1;i++;break;
case 8:i=0;break;
default:break;
}
}
else
times++;
}要想改变转速的话,只要在主程序中重新给
sudu
赋值就行了,想加速就改小,想减速就增大
第2个回答  2006-04-28
单片机控制步进电机是由编入的程序控制的.P1.0=0 ;P1.0=1是做键盘用.
第3个回答  2006-04-29
控制时间可以用单片机内部的定时/计数器
第4个回答  2021-04-12

一起来了解步进电机的结构与工作原理

相似回答