步進電機的驅(qū)動
stm32為例,使用ULN2003,TB6600電機驅(qū)動板,介紹步進電機的常用驅(qū)動方式。
步進電機
我使用的是一個教學(xué)用的小步進電機,驅(qū)動電壓只有5V,所有的步進電機驅(qū)動原理都是類似的,電機詳情如圖。
產(chǎn)品參數(shù)
該模塊為5線4相步進電機,可以使用普通的uln2003芯片驅(qū)動。
驅(qū)動要求:能夠提供較快的電流上升和下降速度,使電流波形經(jīng)量接近矩形。提供具有戒指期間釋放電流流通的賄賂,以前降低繞組兩端的反電動勢,加快電流衰減。具有較高的功率及效率,步進電機的轉(zhuǎn)速與脈沖信號的頻率姐可以對單機進行調(diào)速。
內(nèi)部結(jié)構(gòu)圖
四拍驅(qū)動方式
在四線驅(qū)動方式中,每次僅有一個線圈通電,對磁鐵具有吸引作用,從而使電機進行轉(zhuǎn)動,每次轉(zhuǎn)動一個相位。改變脈沖方向,才可以正常運轉(zhuǎn)。
八拍驅(qū)動方式
再八相驅(qū)動方式中,實現(xiàn)了更精細的角度控制,適用于高精度場合。
ULN2003
步進電機要加驅(qū)動才可以正常運轉(zhuǎn),其需要較大的驅(qū)動電流,單片機的引腳無法輸出電流無法滿足其需求,故需要ULN2003驅(qū)動芯片來驅(qū)動電機。
接線方式如圖:
程序設(shè)計
step_motor.h
這里使用了GPIOB的幾個IO口作為電機的驅(qū)動接口,當(dāng)然你可以根據(jù)自己的需要修改。要特殊說明的是斷電狀態(tài)函數(shù)是由于步進電機在停止轉(zhuǎn)動時,如果線圈還在通電,會照成電機發(fā)熱甚至損壞,故在每次轉(zhuǎn)動后都要將電機處于斷電狀態(tài)。來保護電機。
step_motor.c
該驅(qū)動方式采用的是八拍的驅(qū)動方式,根據(jù)所在的拍數(shù)決定引腳的電平變化,電機按步數(shù)運行則是每步執(zhí)行一個節(jié)拍,根據(jù)節(jié)拍的順序07或70來對電機進行轉(zhuǎn)動方向的控制,用每個節(jié)拍的間隔時間來對電機的轉(zhuǎn)動速度進行控制,間隔越短電機速度越快,扭矩也就越小。
按圈數(shù)運行,這里值得說明的是,步進電機每旋轉(zhuǎn)一個完整的周期(8拍)并使是轉(zhuǎn)軸旋轉(zhuǎn)了一圈,電機內(nèi)部是由減速齒輪的,所以一個周期并不是一圈,這之間有一個轉(zhuǎn)換關(guān)系,不同的電機比例系數(shù)不同,這里也可以通過調(diào)節(jié)系數(shù),來對電機進行旋轉(zhuǎn)角度的控制。