之一的 最受歡迎的步進電機是28BYJ-48。 在此博客中發表文章之後,您應該已經知道 您需要的有關此類型發動機的所有信息 可以控制轉彎,使其緩慢前進或在所需位置保持靜止的精確度。 這樣一來,他們便可以通過您可以想到的許多其他應用程序,從工業到機器人技術,擁有眾多的應用程序。
28BYJ-48很小 單極式步進電機,並且易於與Arduino集成,因為它通常附帶一個驅動程序/控制器模塊模型ULN2003A。 所有這些都是非常便宜的價格和相當緊湊的尺寸。 這些功能也使其非常適合開始使用這些設備進行練習。
28BYJ-48功能
馬達 28BYJ-498 它是一種步進電機,具有以下特徵:
- TIPO:步進電機或單極步進電機
- 相:4(整步),因為裡面有4個線圈。
- 雷西斯滕:50Ω。
- 發動機扭矩: 34 N / m,即如果將每米牛頓傳遞到Kg,則該力等於將0.34 Kg / cm放置在其軸上。 用滑輪足以將其抬起,剛好超過四分之一公斤。
- 消費:55 mA
- 每圈步數:8個半步類型(每個45º)
- 集成變速箱:是的,1/64,因此它將每一步分為64個較小的步以提高精度,因此,它達到512個步長(每個0.7º)。 或者,也可以將其視為每圈256個完整步(完整步)。
全步或半步或全步半是您可以使用的模式。 如果您還記得的話,我在有關步進電機的文章中說過,Arduino IDE的代碼示例在全扭矩下工作。
有關更多信息,您可以 下載數據表例如 例如這個。 至於引腳排列,雖然您也可以在所購買型號的數據表中查看信息,但不必擔心太多。 但是這種混凝土有一個連接,可讓您一次連接所有電纜,而不必擔心極化或每根電纜的去向,只需將其插入控制器中即可。
至於此28BYJ-48電機中包含的電機控制器或驅動器, ULN2003A,是最受歡迎的工具之一,您可以很容易地將其與Arduino一起使用。 正如我在上面提到的步進電機文章中所看到的那樣,它具有一個達林頓晶體管陣列,該陣列支持高達500mA的電流,並具有將4個線圈與Arduino板的引腳(從IN1到IN4編號)相連的連接引腳。 在Arduino中,您可以使用從引腳5v和GND到驅動器模塊板上標有-+(5-12v)的兩個引腳的電線,為該板和步進電機供電。
順便說一句 達林頓晶體管 允許使用放置在一起並用作單個晶體管的一對雙極晶體管。 這極大地增加了所得單個“晶體管”中信號的增益,並且還允許攜帶更高的電流和電壓。
El 達靈頓對作為由兩個雙極晶體管的組合形成的單個“晶體管”,是已知的。 它由Sidney Darlington於1952年在貝爾實驗室創立,因此得名。 這些晶體管以這樣的方式連接:一個NPN的集電極連接到第二NPN晶體管的集電極。 而第一個的發行者轉到第二個的發行者。 即,所得晶體管或一對具有三個連接作為單個晶體管。 第一晶體管的基極和第二晶體管的集電極/發射極...
在哪裡購買電機
很多 你可以在許多商店找到 專門研究電子產品,也像Amazon這樣的在線公司。 例如,您可以在以下位置購買它們:
- 大約6歐元,您可以擁有一個 28BYJ-48發動機,帶驅動程序模塊.
- 找不到產品。 以及用於連接的電纜,以防您需要為機器人或項目使用多個電機...
用Arduino編程28BYJ-48
首先,你應該 清楚步進電機的概念,所以我推薦你 閱讀有關這些項目的Hwlibre文章。 這些電機並非設計為連續饋電,而是將它們在不同的相位極化,以便它們僅提高我們想要的度數。 要激發各相並控制軸的旋轉,必須正確地饋送每個連接。
製造商建議一次驅動2個線圈。
- 使它起作用 在最大扭矩下,以最快的速度和最大的消耗,您可以使用此表:
埃爾帕索 | 線圈A | 線圈B | 線圈C | 線圈D |
---|---|---|---|---|
1 | 高 | 高 | 低 | 低 |
2 | 低 | 高 | 高 | 低 |
3 | 低 | 低 | 高 | 高 |
4 | 高 | 低 | 低 | 高 |
- 一次僅驅動一個線圈並使它工作 在波浪驅動模式下 (即使是一半,但消耗很少),您可以使用下表:
埃爾帕索 | 線圈A | 線圈B | 線圈C | 線圈D |
---|---|---|---|---|
1 | 高 | 低 | 低 | 低 |
2 | 低 | 高 | 低 | 低 |
3 | 低 | 低 | 高 | 低 |
4 | 低 | 低 | 低 | 高 |
- 還是為了進步 半步,您可以使用它在較短的步驟中獲得更高的轉彎精度:
埃爾帕索 | 線圈A | 線圈B | 線圈C | 線圈D |
---|---|---|---|---|
1 | 高 | 低 | 低 | 低 |
2 | 高 | 高 | 低 | 低 |
3 | 低 | 高 | 低 | 低 |
4 | 低 | 高 | 高 | 低 |
5 | 低 | 低 | 高 | 低 |
6 | 低 | 低 | 高 | 高 |
7 | 低 | 低 | 低 | 高 |
8 | 低 | 低 | 低 | 高 |
您可能會想...這與Arduino編程有什麼關係? 好吧,事實是,因為 您可以在Arduino IDE中使用值創建矩陣或數組 使電動機按您的意願運動,然後在迴路中或需要時使用所述陣列...考慮到LOW = 0和HIGH = 1,即沒有電壓或高壓,可以創建您必鬚髮送給控制器的Arduino信號才能驅動電機。 例如,要採取中間步驟,您可以將代碼用於矩陣:
int Paso [ 8 ][ 4 ] = { {1, 0, 0, 0}, {1, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 0, 0, 1}, {1, 0, 0, 1} };
也就是說, 草圖的完整代碼 在Arduino IDE中,您可以使用此基本示例來測試28BYJ-48步進電機的工作方式。 正確連接了整張圖之後,您可以使用它來旋轉電動機軸。 嘗試修改值或更改您所需的應用程序代碼:
// Definir pines conectados a las bobinas del driver #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes int paso [4][4] = { {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}, {1, 0, 0, 1} }; void setup() { // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } // Bucle para hacerlo girar void loop() { for (int i = 0; i < 4; i++) { digitalWrite(IN1, paso[i][0]); digitalWrite(IN2, paso[i][1]); digitalWrite(IN3, paso[i][2]); digitalWrite(IN4, paso[i][3]); delay(10); } }
如您所見,在這種情況下,它將以最大扭矩兩兩激活線圈...