关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于XC2267M的仪表盘步进电机控制

基于XC2267M的仪表盘步进电机控制

作者: 时间:2010-03-02 来源:网络 收藏

比如,最低的速度等级元素为100,则在主循环里,Move_One_Step_Enable被置为1,Move-time赋值为100。在此后的第一个中断里,运行一步,Move_One_Step_Enable=0,同时Move-time减为99。此后,主程序和中断程序都不进行任何操作,直到第100次中断发生,Move-time减为0,才再一次进入主循环对Move-time赋值。也就是说,在(200×100)μs的时间里,只行动了一次。相反,如果速度等级高,则Move-time的赋值相应小,会在更短的时间内再次行动,使电机转速看上去“提高”了。

本文引用地址://m.amcfsurvey.com/article/163231.htm


为保证速度之间过渡的平滑性,防止突变对电机造成的损伤,每3次进入主循环才允许更改一次速度等级,即每个速度等级步进电机至少走3步。


4 主函数详解
首先判断指针是否需要转动,如果否,直接跳到结束,等待新一轮判断。如果判定结果为需要转动,继续判断上一步是正向还是反向运动。

图2 主函数流程图


若判定结果为正向运动,进入正向运动模块,继续判断当前位置和目标位置是否一致。


如果目标位置和当前位置一致,则表明指针已到达指定位置,此时进入防抖模块,并将Move-time 置为1。
如果目标位置和当前位置不一致,则要进一步判断目标位置是否大于当前位置。如果目标位置小于当前位置,则表明在步进电机的正向运动中检测到反向运动的请求。此时,进入反向运动需求相应模块,逐渐减小步进电机转速,最后改变步进电机运行方向标志位。


如果目标位置大于当前位置,则表示运动需求仍为正向,此时需要判断目标位置和当前位置之差的大小。如果位置差很大,而步进电机转速没有到达最大,则提速;如果转速已达到最大,则保持该速度。如果位置差小于某一特定值,则进入减速状态。




评论


相关推荐

技术专区

关闭