·上一文章:基于Linux的温度传感器DS18B20驱动程序设计
·下一文章:数字信号控制器提供实时控制功能
为保证速度之间过渡的平滑性,防止突变对步进电机造成的损伤,每3次进入主循环才允许更改一次速度等级,即每个速度等级步进电机至少走3步。
4 主函数详解
首先判断指针是否需要转动,如果否,直接跳到结束,等待新一轮判断。如果判定结果为需要转动,继续判断上一步是正向还是反向运动。
图2 主函数流程图
若判定结果为正向运动,进入正向运动模块,继续判断当前位置和目标位置是否一致。
如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move-time 置为1。
如果目标位置和当前位置不一致,则要进一步判断目标位置是否大于当前位置。如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动的请求。此时,进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志位。
如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置之差的大小。如果位置差很大,而步进电机转速没有到达最大,则提速;如果转速已达到最大,则保持该速度。如果位置差小于某一特定值,则进入减速状态。