熊方 李愛民


摘要:本文基于v2Arm Cortex-M3為內核的324A微控制器STM32F103R6,對步進電機實現正轉、反轉、加速、減速、停止狀態進行控制。該設計利用了STM32的GPIO端口、中斷、定時器等資源和技術進行硬件、軟件設計,通過Keil軟件仿真和實驗證明,該設計方案穩定可行,系統運行各項指標符合設計要求。
關鍵詞:STM32;步進電機;運動控制
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2020)05-0003-02
0引言
步進電機是廣泛應用于智能制造、汽車電子和精密儀器等領域的執行器。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響。STM32系列處理器是由ST公司以Am Cortex-M3為內核開發生產的32位處理器,專為高性能、低成本、低功耗的嵌入式應用而設計。STM32F103R6屬于增強型系列處理器,有64個引腳,32KB閃存容量,工作頻為72MHz,有16個內核中斷線、1個高級定時器、3個通用16位定時器。本文基于STM32F103R6處理器設計一款簡潔的商陛能、低成本、低功耗的步進電機運動控制系統。
1系統方案
該系統包括STM[32F103R6處理器、控制按鍵、電機驅動器和步進電機四個部分,如圖1所示。STM32接收到按鍵信息,對步進電機運行狀態進行控制。
2硬件設計
2.1控制鍵盤
控制鍵盤的設計采用獨立式鍵盤方式,如圖2所示。KEYO~KEY4分別與SM32的PA8-PA12連接。當按鍵沒有按下時,引腳上是高電平;當按鍵按下時,引腳上是低電平。
2.2電機驅動
本設計中,步進電機驅動器采用ULN2003A,它是一種新型的七路高耐壓、大電流達林頓晶體管驅動IC,在繼電器驅動、電磁閥驅動、伺服電機以及步進電機驅動電路當中廣泛應用。驅動電路如圖3所示,STEP_A、STEP_B、STEP_C、STEP_D分別接到STM32的PB8-PB11。
3軟件設計
3.1步進電機正反轉控制
以四相八拍步進電機為例,只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。加上正時序A_AB_B_HCC_CD_D_DA_A,步進電機正轉。加上反向時序步進電機反轉。正反轉控制函數void STEP MO"FOR RUN(u8 Direction)主要程序如下:
3.6步進電機加減速控制
為了克服步進電機失步和過沖現象,應采用與電機控制相適應的控制算法,即在啟動和停止時實行加減速控制。其實質是在速度變化過程中控制發送脈沖的頻率實現速度的加減速。通常加減速算法主要有梯形曲線、指數曲線和s型曲線。
4結語
本文針對步進電機,選用STM32F103R6芯片進行控制。利用了STM32的GPlO口、定時器、中斷等資源和技術來完成,通過Kdl軟件進行仿真和在開發板上進行實驗,實現了步進電機正轉、反轉、停止、加速、減速的運動控制。程序中如果加人s速度曲線或其它優化算法,可以減少步進電機啟動和停止過程中的振動和失步現象,提高電機控制精度和平穩度。該設計簡易、低成本、低功耗,便于應用。