步進電機每輸入一個脈沖信號,轉子就轉動一個角度或前進一步,其輸出的角度輸入的脈沖數成正比,轉速與脈沖頻率成正比。它的驅動方式也比普通的有刷直流電機復雜。
本節我們就來講講步進電機最基礎的驅動方式。
1)步進電機的內部結構
先簡單介紹一下主要的兩種步進電機:單極性和雙極性。
如下圖所示,左邊是單極性電機;右邊是雙極性電機。單極性電機線圈內的電流只有一個方向,雙極性電機線圈內的電流是雙向的:
而相數,則是內部線圈的組數;一般的步進電機都可以看作是兩相電機變化而來的。
本文我們使用最簡單的五線四相制的電機(28BYJ-48),驅動方法也都是以它來講的,其他種類的大同小異。就是如下圖這種步進電機,以及驅動板:
它內部的接線關系如下圖所示,正極是公共的,其他四個端口各對應一組線圈的負極:
驅動板的原理圖如下,就是一個nln2003的達林頓管驅動器(忽略右下角的燈,基本毫無用處⊙﹏⊙b汗),IN1IN4處輸入高電平,對應的OUT1OUT4會輸出低電平:
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四相。PA03連接到驅動板的IN1IN4;驅動板使用5V供電。
經過上一節了解了上述三種驅動方法后,就很容易寫出驅動代碼了。
如下是單4拍驅動的主要代碼:
定義兩個常量數組,F_Rotation存正向旋轉的各相導通值,B_Rotation存反向旋轉的值;
主循環中,每隔一個周期,去改變接通的相,4個拍一循環,就能實現電機轉動了。
雙四拍只要將定義的數組值更改一下就可以實現。
如下是8拍驅動的代碼,原理是一樣的,就不多解釋了:
4)注意事項
對于確定的驅動方式,步進電機每拍轉過的角度是相同的,所以,如果想要改變轉速,只要改變每拍的延時就可以了,也就是改變周期。
但是要注意,不能超過電機參數要求,如我們使用的這個電機(28BYJ-48)的參數:
最大空載牽出頻率>900pps,最大空載牽入頻率>500pps。
也就是說空載轉動時,最快的驅動拍頻率最好不要超過900Hz;空載啟動時,最快的驅動拍頻率最好不要超過500Hz,因為啟動時初始轉速從零開始,驅動拍太快的話會失步,可能無法轉動起來。所以程序里也設計成了500Hz(2ms延時)一拍。
一般情況下,系統最好設計成,啟動時慢轉速,之后逐漸加快到需要的轉速。
-
直流電機
+關注
關注
36文章
1710瀏覽量
70237 -
步進電機
+關注
關注
150文章
3113瀏覽量
147588 -
脈沖信號
+關注
關注
6文章
399瀏覽量
37009
發布評論請先 登錄
相關推薦
評論