關 閉

        新聞中心

        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。
        如果目標位置和當前位置不一致,則要進一步判斷目標位置是否大于當前位置。如果目標位置小于當前位置,則表明在步進電機的正向運動中檢測到反向運動的請求。此時,進入反向運動需求相應模塊,逐漸減小步進電機轉速,最后改變步進電機運行方向標志位。


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




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵南县| 东海县| 五大连池市| 黄山市| 招远市| 马鞍山市| 汽车| 武鸣县| 油尖旺区| 桂林市| 县级市| 永宁县| 新和县| 淳化县| 九龙县| 宝鸡市| 广南县| 昭觉县| 宝丰县| 天长市| 五大连池市| 麻城市| 五莲县| 杭锦后旗| 东城区| 平乐县| 舒城县| 昭通市| 延津县| 南雄市| 北宁市| 区。| 灯塔市| 邓州市| 海淀区| 石狮市| 岳阳市| 前郭尔| 张北县| 海兴县| 博野县|