基于XC2267M的儀表盤步進電機控制
首先判斷指針是否需要轉動,如果是,表明上次轉動尚未完成,直接跳出中斷,等待下一次中斷。如果判定結果為不要轉動,繼續(xù)判斷上一步是正向還是反向運動。本文引用地址:http://butianyuan.cn/article/163231.htm
圖3 中斷函數(shù)流程圖
若判定結果為正向,則繼續(xù)進行下一步判斷:目標位置和當前位置是否一致。結果為反向則進入反向運動中斷處理模塊,流程結果類似。
判斷轉動一步標志位是否為1。若為1,依據(jù)當前位置從PWM數(shù)組里賦新值給PWM寄存器,步進電機行動一步,當前位置前進一步(若為反向則退后一步)并清零轉動一步標志位。這樣下次進入中斷時,若轉動一步標志位沒有在主循環(huán)里重新賦值為1,步進電機就不會再次轉動。
每次進入中斷,當Move_time不為0時,Move_time減1,直至減為0為止。
實驗結果
經過巴特沃斯二階低通濾波后,步進電機兩相電壓波形都為比較平滑的正弦波,波形相位差為120°,與理論的細分波形相吻合。
步進電機從位置A移動到位置B的過程中,先加速(如果AB距離足夠大,步進電機將加速到最大轉速后勻速運行)。在接近位置B時,步進電機將減速,最后停止在位置B。從上圖可以看出,加速階段正選的波長逐漸變窄,減速時則逐漸變寬。
圖4 步進電機勻速運轉兩相電壓圖
圖5 步進電機加速狀態(tài)單相電壓示意圖
圖6 步進電機減速狀態(tài)單相電壓示意圖
結論
利用單片機可方便的對步進電機的速度和位置進行控制,可靠地實現(xiàn)各種步進電機的操作,完成各種復雜工作。這里提出的步進電機分步控制方法,依靠Infineon最新的XC2267M單片機CC2模塊強大的16個PWM輸出通道,同時驅動4個步進電機,成功通過軟件編程代替驅動芯片實現(xiàn)儀表盤步進電機的細分控制,運行結果穩(wěn)定可靠,并節(jié)省了外部設備,降低了成本。
評論