STM32 电机教程 7 - 步进电机开环速度控制
前言
????? 上一講我們已成功實現(xiàn)對步進電機的正反轉(zhuǎn)動控制,并簡單的通過調(diào)節(jié)節(jié)拍間的延時時間實現(xiàn)了簡單的轉(zhuǎn)速控制(開環(huán)),這一節(jié)將繼續(xù)給大學(xué)介紹在STM32中通過定時器方式來實現(xiàn)節(jié)拍間的精確延時操作,并通時調(diào)節(jié)定時器定時中斷產(chǎn)生的時間來實現(xiàn)對步進電機的開環(huán)速度控制。
?
????? 本節(jié)演示步進電機實物圖如下,因沒有找到電機的詳細參數(shù),只能從型號中大致猜測一些(電機工作電壓4V),結(jié)合萬用表實測,得知該步進電機為兩相四線電機,具體接線關(guān)系如下圖所示。
?
示例詳解
本節(jié)用到ST官方推出的NUCLEO-F103RB和MPS的EV8049S-U-00A 電機控制評估板 ,EV8049S-U-00A評估板使用MP8049雙通道全橋芯片,可同時控制兩個有刷直流電機或兩個喇叭或一個步進電機,本節(jié)將用它來控制一個步進電機,手頭沒有EV8049S-U-00A評估板的可以用專門的步進電機驅(qū)動板(tb6560等)代替,也可以用L298N電機驅(qū)動板來控制。
?
?
NUCLEO-F103RB對應(yīng)的大致原理接線圖:
EV8049S-U-00A 電機控制評估板原理圖:
?
?
?
?
| 需要用到的信號 | 對應(yīng)MCU引腳 |
| PWM1A | PA0 |
| PWM1B | PA1 |
| PWM2A | PA4 |
| PWM1B | PB0 |
| GND | GND |
本節(jié)將直接使能PA0,PA1,PA4,PB0引卻配置成通用輸出模式 ,直接以接高或拉低方式控制步進電機的各相通電狀態(tài),步進電機的節(jié)拍控制放在定時器中斷中完成,通過控制定時器定時時間便可實現(xiàn)對步時電機的速度控制。
?
關(guān)于兩相步進電機的控制節(jié)拍:
正轉(zhuǎn):
(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.
反轉(zhuǎn)為正轉(zhuǎn)的逆序,本節(jié)將演示以上兩種控制方式的步進電機正反控制。
?
生成一個簡單的工程模板實現(xiàn)了RCC,SYS,USART2接口的配置,同時還實現(xiàn)了LD2(LED)引腳的配置。接下來手動配置PA0,PA1,PA4,PB0為普通輸出功能:
配置定時器1,用來產(chǎn)生定時中斷,并在定時中斷函數(shù)中完成步進電機的節(jié)拍換向操作,這里在定時器分頻系數(shù)為(71+1)=72,默認定時時長為(999+1)=1000us ,即1ms,可實現(xiàn)的定時時間范圍是1us 到 65.535ms。
同時開啟定時器更新中斷,中斷等級選擇默認即可:
?
生成工程:
?
?
修改stm32f1xx_it.c中代碼
最后在main.c 中加入如下測試代碼:
設(shè)置工程下載后自動運行:
編譯代碼,下載程序運行可直以看到步時電機成功轉(zhuǎn)動起來,可以看到步進電機成功實現(xiàn)了三種速度正轉(zhuǎn)及反轉(zhuǎn)功能,結(jié)合已編寫好的stepmotor.c中的代碼及定時器功能,可以很方便實現(xiàn)步進電機的速度,方向及使能控制,操作mymotor.EN變量可以實現(xiàn)步進電機的起停控制,控制mymotor.Dir 變量值就可以實現(xiàn)步進電機的方向控制,映射好mymotor.Delay 變量的值如程序中( mymotor.Delay= &(htim1.Instance->ARR); )后操作 *mymotor.Delay ?的值就可實現(xiàn)步進電機的速度控制( 如程序中的 *mymotor.Delay = 500; )。
通過本節(jié)內(nèi)容,我們已經(jīng)可以實現(xiàn)對步時電機速度的較為精確的控制,不過需在注意的是,本節(jié)對步進電機的速度控制是開環(huán)控制,如果步進電機不丟步,則速度是比較準(zhǔn)確的,為了防止步進電機丟步,控制節(jié)拍間的間隔一定不能太小,否則很有可能發(fā)生步進電機跟不上(丟步)甚至不轉(zhuǎn)的情況。OK,本期內(nèi)容完成!下一期將給大家介紹步進電機的開環(huán)電流控制,如果大家有什么疑問或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個公眾號的同學(xué)們記得加關(guān)注了,每天都會有技術(shù)干貨推出!!
?
文中源碼及資料下載,關(guān)注十三公眾號:
在公眾號里給十三發(fā)送 “下載|STM32 電機教程 7” :
?
?
總結(jié)
以上是生活随笔為你收集整理的STM32 电机教程 7 - 步进电机开环速度控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 电机教程 6 - 步进电机转
- 下一篇: STM32 电机教程 8 - 步进电机开