需要一个步进电机驱动器,最简单的驱动就是自己写延时函数,定时翻转IO口的电平;也可以用定时器的PWM模式输出PWM,打开GPIO的复用,配置定时器到PWM模式就可以,每个定时器有4路PWM,每一路对应一个IO口,也可以重映射;复杂的加减速,就需要步进电机驱动算法,可以用SPTA算法,曲线趋近于S型。
1、 直接归零法。该方法在零位处安装一个停止挡块,然后令步进电机向零位方向驱动足够大的角度,当步进电机回到零位时,被挡块挡住,电机停止位置即零位。
这种归零方法简单,但是在电机被挡块挡住时,仍会驱动电机执行归零动作,因此不仅会对步进电机和传动机构造成伤害,还会产生剧烈的抖动和较大的噪声。:2、 传感器法。该方法在零位处安装霍尔开关、光电二极管等位置传感器,当步进电机回到零位时,传感器给出检测信号,控制电路检测到该信号时,令电机停在零点位置。这种归零方法准确、可靠,但是增加了电路的复杂性,对安装有一定的要求。
3、 采用带停转检测的专用电机驱动芯片。这种芯片在电机停转时,能够立刻检测到电机处于停转状态,从而确定零点位置。
但这种方法通用性差,对步进电机各绕组的电流相位有一定的要求,并且这种方法不能在微步驱动方式下使用。
设定定时器一个主,一个从模式,相位自己选择。