關 閉

        新聞中心

        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的賦值相應小,會在更短的時間內再次行動,使電機轉速看上去“提高”了。

        本文引用地址:http://www.104case.com/article/163231.htm


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


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

        圖2 主函數流程圖


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


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


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




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 仁寿县| 上思县| 长子县| 沐川县| 富阳市| 谢通门县| 江津市| 张家口市| 新巴尔虎右旗| 彭山县| 德格县| 卓尼县| 乐东| 阿克| 洛南县| 德保县| 池州市| 怀安县| 云龙县| 永吉县| 黄龙县| 内黄县| 隆尧县| 老河口市| 安达市| 驻马店市| 山阳县| 正蓝旗| 温州市| 汉寿县| 吐鲁番市| 嵊泗县| 巴彦县| 内黄县| 德州市| 平舆县| 徐汇区| 娱乐| 南岸区| 长乐市| 彩票|