步進電機驅動基礎


步進電機每輸入一個脈沖信號,轉子就轉動一個角度或前進一步,其輸出的角度輸入的脈沖數成正比,轉速與脈沖頻率成正比。它的驅動方式也比普通的有刷直流電機復雜。

本節我們就來講講步進電機最基礎的驅動方式。

1)步進電機的內部結構

先簡單介紹一下主要的兩種步進電機:單極性和雙極性。

如下圖所示,左邊是單極性電機;右邊是雙極性電機。單極性電機線圈內的電流只有一個方向,雙極性電機線圈內的電流是雙向的:

而相數,則是內部線圈的組數;一般的步進電機都可以看作是兩相電機變化而來的。

本文我們使用最簡單的五線四相制的電機(28BYJ-48),驅動方法也都是以它來講的,其他種類的大同小異。就是如下圖這種步進電機,以及驅動板:

它內部的接線關系如下圖所示,正極是公共的,其他四個端口各對應一組線圈的負極

驅動板的原理圖如下,就是一個nln2003的達林頓管驅動器(忽略右下角的燈,基本毫無用處⊙﹏⊙b汗),IN1~IN4處輸入高電平,對應的OUT1~OUT4會輸出低電平:

2)步進電機的驅動方法

最​基本的方法有3種,單4拍法、雙4拍法、單雙8拍法。

a)單4拍法驅動

驅動過程如下圖所示,4個步驟一個周期,每個時刻只有一相通電:

先給A相通電,其他相斷電,則轉子的對應極被吸引到A相處,如步驟1;

后續依次給B、C、D相通電,則轉子會轉到B、C、D處,如步驟2、3、4;

最后再給A相通電,其他相斷電,轉子又回到A處;周而復始,使得轉子不斷旋轉。

各相的導通過程如下圖所示:

這種方法每次都只有一相通電,所以稱為單4拍法。

b)雙4拍法驅動

驅動過程如下圖所示,也是4個步驟一個周期,不同的是每個時刻都有相鄰的兩相通電:

先給A相、B相通電,其他相斷電,則轉子的對應極被吸引到A、B相中間處,如步驟1;

后續依次給BC、CD、DA相通電,如步驟2、3、4;

最后再給A、B相通電,其他相斷電,轉子又回到AB相之間;周而復始,使得轉子不斷旋轉。

雙4拍法每個時刻會有兩組線圈導通,所以電機的輸出力矩比單4拍法更大。

各相的導通過程如下圖所示:

c)單雙8拍法驅動

驅動過程如下圖所示,8個步驟一個周期:

這種方法類似於單4拍和雙4拍的組合。

先給A相通電,其他相斷電,轉子在A處;

再給A、B相通電,其他相斷電,則轉子來到AB之間;

然后給B相通電,其他相斷電,轉子來到B處;

再給B、C相通電,其他相斷電,轉子來到BC之間;

之后類似,一共8個步驟可以完成一個周期的運動。

8拍法驅動時,轉子的位置比4拍法多兩個中間態,所以轉動時的位置控制更加精確一些,但是由於它有時是一相通電,有時是兩相通電,所以在不同位置的力矩是不同的

各相的導通過程如下圖所示:

3)使用stm32編程驅動電機

先看連接方式,使用PA0、PA1、PA2、PA3驅動A、B、C、D四相。PA0~3連接到驅動板的IN1~IN4;驅動板使用5V供電。

經過上一節了解了上述三種驅動方法后,就很容易寫出驅動代碼了。

如下是單4拍驅動的主要代碼:

定義兩個常量數組,F_Rotation存正向旋轉的各相導通值,B_Rotation存反向旋轉的值;

主循環中,每隔一個周期,去改變接通的相,4個拍一循環,就能實現電機轉動了。

雙四拍只要將定義的數組值更改一下就可以實現。

如下是8拍驅動的代碼,原理是一樣的,就不多解釋了:

4)注意事項

對於確定的驅動方式,步進電機每拍轉過的角度是相同的,所以,如果想要改變轉速,只要改變每拍的延時就可以了,也就是改變周期。

但是要注意,不能超過電機參數要求,如我們使用的這個電機(28BYJ-48)的參數:

最大空載牽出頻率>900pps,最大空載牽入頻率>500pps。

也就是說空載轉動時,最快的驅動拍頻率最好不要超過900Hz;空載啟動時,最快的驅動拍頻率最好不要超過500Hz,因為啟動時初始轉速從零開始,驅動拍太快的話會失步,可能無法轉動起來。所以程序里也設計成了500Hz(2ms延時)一拍。

一般情況下,系統最好設計成,啟動時慢轉速,之后逐漸加快到需要的轉速。

好了,本節就講到這里了,有關步進電機的知識這里只是很基礎的一部分,后續有時間再一起深入學習。(本節中多張圖片出自野火的《電機應用開發實戰指南—基於STM32》,在此感謝!)

歡迎關注我的公眾號,可留言“資料”獲取相關資料和軟件:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM