兩相步進電機,??STC8H系列
===用高級PWM實現SPWM細分驅動
/*************? ?? ???功能說明? ?? ???**************
用B組高級PWM細分驅動2相4線小型步進電機, 支持1、2、4、8、16、32、64細分, 比如1.8度的電機4細分到0.45度.
本程序用于演示SPWM多細分直接驅動2相4線小型步進電機的原理, 電壓驅動.
實際的專用驅動器是用電流來驅動的, 這樣比較通用, 但MCU的PWM做成電流驅動則會很復雜.
電壓驅動的不足是, 由于電機反電動勢的影響, 轉速越高, 電流越小, 力矩越小, 而慢速或靜止時電流很大.
為了簡單, 利于初學者, 本例使用線性加減速, 如要使用別的加減速算法, 用戶自行設計.
使用外設:
Timer0: 工作于1ms中斷, 提供1ms時隙標志和串口超時處理.
Timer1: 處理電機驅動.
Timer2: 串口1波特率.
串口1:??命令控制, 串口設置115200,8,1,n.
PWM:? ? B組4路PWM5~PWM8分別從P2.0 P2.1 P2.2 P2.3輸出驅動步進電機.
串口命令設置:
L1,500,1000? ?--> 馬達1以500Hz正轉1000個脈沖, 脈沖數為0則連續轉動.
R1,500,1000? ?--> 馬達1以500Hz反轉1000個脈沖, 脈沖數為0則連續轉動
s? ?? ?? ?? ? --> 停止所有電機
使用42電機驗證。