步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为"步距角",它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。我们通过给驱动器提供不同数量的高低电平来控制电机旋转的角度。
我们计算需要的脉冲数,需要先了解驱动器的细分步数。每个驱动器都可以设置其细分步数,我们选择需要的细分步数然后计算脉冲数。如选择细分步数为3600,则步进角=360/3600=0.1°。代表我们每提供一个高低脉冲(注意1个高电压+1个低电压才算一个脉冲)电机选装0.1°,则若我们想要旋转100°,那么只需要提供1000个脉冲即可。
下面详细的说一下实现的具体方法,我们可在接收到软件给我们下发的旋转一定的角度命令后,计算需要旋转的脉冲数,然后可通过定时器控制高低电平持续的时间(通过控制持续的时间我们就可以控制我们电机的旋转速度),在每次高低电平反转时(此时会进到定时器中断中)我们就可将设置的变量值+1(注意变量须从0开始计数),在判断设置的变量是否为我们计算的脉冲数的2倍(高低电平需要进行翻转2次才是1个脉冲),若是则证明电机已旋转到我们需要的角度,则控制电机停下,若不是则需要继续计数,直到计数值满足我们的需求在将电极停下。等待下次命令的到来,我们在进行下次的旋转。经过以上的操作我们就实现了电机旋转角度的控制。
看到这里是不是感觉步进电机的控制很简单,手里有步进电机的小伙伴是不是等不及的需要实验一下了呢······
上面的例子细分步数正好是360的整倍数,若不是整倍数则我们在计算脉冲数的时候就会得不到整数,在多次旋转时就会积累大角度误差,影响我们的旋转精度,如何提高旋转精度就使我们下面需要研究的问题了,有的小伙伴会说可以用编码器,但是一个精度高的编码器价格会昂贵很多,刚刚学习步进电机使用的小伙伴可以先不必在意编码器的问题,那么如何在没有编码器的情况下提高旋转精度呢?下篇文章‘如何在没有编码器的情况下提高步进电机旋转精度’的文章你值得阅读。