STM32 电机教程 6 - 步进电机转动控制
前言
????? 上一講給大家介紹了步進電機的基礎知識,相信大家對步進電機的基本工作原理有了一定的了解(如果沒看上一節內容,可以先看一下,https://blog.csdn.net/zhanglifu3601881/article/details/102844594或學習下面網頁的內容:
https://www.orientalmotor.com.cn/web_seminar/stkiso2-1-1/),如果你手頭有步進電機及相應的驅動板,學習完本節的內容后也你可以輕松地實現對步進電機的控制。
?
????? 本節演示步進電機實物圖如下,因沒有找到電機的詳細參數,只能從型號中大致猜測一些(電機工作電壓4V,電流4A),結合萬用表實測,得知該步進電機為兩相四線電機,具體接線關系如下圖所示。
?
示例詳解
本節用到ST官方推出的NUCLEO-F103RB和MPS的EV8049S-U-00A 電機控制評估板 ,EV8049S-U-00A評估板使用MP8049雙通道全橋芯片,可同時控制兩個有刷直流電機或兩個喇叭或一個步進電機,本節將用它來控制一個步進電機,手頭沒有EV8049S-U-00A評估板的可以用專門的步進電機驅動板(tb6560等)代替,也可以用L298N電機驅動板來控制。
?
?
NUCLEO-F103RB對應的大致原理接線圖:
EV8049S-U-00A 電機控制評估板原理圖:
?
?
?
?
| 需要用到的信號 | 對應MCU引腳 |
| PWM1A | PA0 |
| PWM1B | PA1 |
| PWM2A | PA4 |
| PWM1B | PB0 |
| GND | GND |
本節將直接使能PA0,PA1,PA4,PB0引卻配置成通用輸出模式 ,直接以接高或拉低方式控制步進電機的各相通電狀態。
?
關于兩相步進電機的控制節拍:
正轉:
(1)四拍:A 1000,A- 0010,?? B 0100,? B- 0001.
(2)八拍:A 1000,AA- 1010,A- 0010,A-B 0110,B 0100,BB- 0101,B- 0001,B-A 1001.
反轉為正轉的逆序,本節將演示以上兩種控制方式的步進電機正反控制。
?
?
?
?
?
?
?
?
?
生成一個簡單的工程模板實現了RCC,SYS,USART2接口的配置,同時還實現了LD2(LED)引腳的配置。接下來手動配置PA0,PA1,PA4,PB0為普通輸出功能:
?
生成工程:
?
?
經過測試,示例使用四拍方式剛好是400步走完一圈,故步距角是 360/400 = 0.9 度,又因
步距角 = 180/(相數*轉子極對數),前面已實測出該步進電機相數為2 ,可知,轉子極對數為100。八拍驅動方式為四拍驅動方式的1/2細分驅動,在該驅動方式下,步時電機每拍轉動 1/2 步距角即0.45度故需要800個節拍才能起完一圈。
設置工程下載后自動運行:
編譯代碼,下載程序運行可直以看到步時電機成功轉動起來,先是快速正一圈(4拍),然后慢速反轉一圈(8拍),然后是快慢速正反各兩圈,依次循環運動。程序中可以修改HAL_Delay(1)的延時時間來實現步時電機的速度控制,需要注意的是延時時間不能過短,不然步時電機可能會跟不上節拍導致丟步,延時時間太長也有可能導致動作不連貫。在步進電機轉動時,可以看到如下的驅動波形圖,四拍波驅動波形:
八拍驅動波形:
?
通過本節內容,學習了步進電機的基本節拍控制,對步進電機的控制原理有了更加具體及深刻的認識。其實現在市面上已經有了很多完整的步進電機驅動方案(芯片或控制板),這些驅動方案往往都已經完整地實現了步進電機的節拍控制,在使用時,用戶往往只需給定簡單的脈沖(一個脈沖走一步或一個細分步)信號及方向信號就可以實現步進電機的控制,使得控制步進電機變得更加簡單。OK,本期實驗完成!下一期將給大家介紹步進電機的開環速度控制,如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,每天都會有技術干貨推出!!
?
?
文中源碼及資料下載,關注十三公眾號:
在公眾號里給十三發送 “下載|STM32 電機教程6” :
?
?
總結
以上是生活随笔為你收集整理的STM32 电机教程 6 - 步进电机转动控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 电机教程 5 - 步进电机基
- 下一篇: STM32 电机教程 7 - 步进电机开