關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于XC2267M的儀表盤步進電機控制

基于XC2267M的儀表盤步進電機控制

作者: 時間:2010-03-02 來源:網絡 收藏

比如,最低的速度等級元素為100,則在主循環(huán)里,Move_One_Step_Enable被置為1,Move-time賦值為100。在此后的第一個中斷里,運行一步,Move_One_Step_Enable=0,同時Move-time減為99。此后,主程序和中斷程序都不進行任何操作,直到第100次中斷發(fā)生,Move-time減為0,才再一次進入主循環(huán)對Move-time賦值。也就是說,在(200×100)μs的時間里,只行動了一次。相反,如果速度等級高,則Move-time的賦值相應小,會在更短的時間內再次行動,使電機轉速看上去“提高”了。

本文引用地址:http://m.butianyuan.cn/article/163231.htm


為保證速度之間過渡的平滑性,防止突變對電機造成的損傷,每3次進入主循環(huán)才允許更改一次速度等級,即每個速度等級步進電機至少走3步。


4 主函數詳解
首先判斷指針是否需要轉動,如果否,直接跳到結束,等待新一輪判斷。如果判定結果為需要轉動,繼續(xù)判斷上一步是正向還是反向運動。

圖2 主函數流程圖


若判定結果為正向運動,進入正向運動模塊,繼續(xù)判斷當前位置和目標位置是否一致。


如果目標位置和當前位置一致,則表明指針已到達指定位置,此時進入防抖模塊,并將Move-time 置為1。
如果目標位置和當前位置不一致,則要進一步判斷目標位置是否大于當前位置。如果目標位置小于當前位置,則表明在步進電機的正向運動中檢測到反向運動的請求。此時,進入反向運動需求相應模塊,逐漸減小步進電機轉速,最后改變步進電機運行方向標志位。


如果目標位置大于當前位置,則表示運動需求仍為正向,此時需要判斷目標位置和當前位置之差的大小。如果位置差很大,而步進電機轉速沒有到達最大,則提速;如果轉速已達到最大,則保持該速度。如果位置差小于某一特定值,則進入減速狀態(tài)。




評論


相關推薦

技術專區(qū)

關閉