stm32最簡單的方法讓你的步進電機動起來!

2021-10-01 03:26:52 字數 1928 閱讀 5032

這段時間專案功能寫到步進電機這塊。這段時間事情有點多,拖了好久才準備寫這篇文章。其實也算有點懷疑,懷疑自己一直以來做的事有沒有價值。前些天不經意看到順利寫的東西,大致知道他目前在做的事情,對比自己,羞愧難當。但是做總比不做強,就且先不管價值大不大了。三呆子說人活著要做很多很多有意義的事,老馬問他什麼叫有意義的事,他嘿嘿一笑,抓了抓頭,說有意義的事就是好好活。那就好好活吧!如果有需要的人看到這篇文章能幫你節省點時間,也算是很它的價值了吧。廢話少敘,開始吧。

其實步進電機實現起來十分簡單,原來我雖然沒用過,但是大致的原理知道一點,就是給乙個脈衝,電機步進一步(這裡說的是帶驅動器的電機,這篇文章寫的也是帶驅動器的,至於不帶驅動器的可能還要考慮相序的問題)。知道這一點之後就可以著手實現了。

要用到的器件有步進電機、驅動器、電源以及若干杜邦線。其實各種型號的器件其實大同小異,原理一樣的。

電機驅動器為最多8細分的,查閱使用手冊知道,8細分時,每步進1600次轉動一圈

電機使用的是四線型的,外部有四根線,可以用萬用表的通斷檔來區分哪兩根線是相連的:通就是一根線,反之就是另一根。

然後把一根線的兩端連到a+a-,另一根線連到b+b-即可。驅動器的v+連到電源的v+,gnd連到com端(此驅動器要求驅動電壓在15v~36v之間)。

一般的電機驅動器分共陰和共陽接法:

共陽極接法:分別將pul+,dir+,en+連線到stm32板子的輸出電壓上,脈衝輸入訊號通過pul-接入;此時,dir-,en-在低電平有效。

共陰極接法:分別將pul-,dir-,en-連線到控制系統的地端(與電源地隔離);此時脈衝輸入訊號通過pul+加入,dir+,en+在高電平有效。

我這裡用到的驅動器只有pul-,dir-,ena-,所以應該預設的是共陽接法。因此,我將pc6口設定成脈衝輸入口pc7設定成方向控制口pc8設定成使能口

準備好了之後,可以編寫程式了。

//電機驅動初始化

void motorio_init()

//步進電機逆時針轉

void motor_l(void)

}

//步進電機順時針轉

void motor_r(void)

}

主函式裡簡單寫乙個測試程式:

//注:此處碼出的是略去一眾初始化語句的部分。

while(1)

} if(!key_down)

}}

stm32最簡單的實現BootLoader

bootloader大家應該都知道是幹什麼的,簡單的來說就是程式開始執行前的一段程式。網上有非常多的檔案有介紹過stm32 bootloader的實現。但是講的可能比較深入難以理解,實現更是無從下手。今天這裡注意介紹最簡單實現的方式,關鍵 只有幾行,每錯,真的就只有 幾行。主要實現晶元是stm32f...

STM32的按鍵方法

按鍵可以用按鍵掃瞄的方法和外部中斷的方法。外部中斷看前面,個人推薦使用外部中斷更好。其餘情況可以用按鍵掃瞄,這裡只講按鍵掃瞄的方法。先在main.h中定義按鍵名稱 define key0 hal gpio readpin gpioc,gpio pin 5 key0按鍵pc5 define key1 ...

STM32學習之 GPIO最簡單操作步驟

需用到的 c 庫函式為 stm32f10x gpio.c 和stm32f10x rcc.c 1.啟動相應port x的rcc 復位始終控制 rcc apb2periphclockcmd rcc apb2periph gpiox,enable x可以是a到g gpio都由apb2 高速外設 時鐘控制 ...