Arduino ULN2003驅動模組+28BYJ-48步進電機
- 步進電機,由於其獨特的設計,可以沒有任何反饋機制而控制到一個高度的準確性。一個步進電機的軸,安裝有一系列的磁鐵,是由一系列的電磁線圈控制,這些線圈按一個特定的序列排列正負極,尤其是向前或向後移動一小“步”。
- 有兩種型別的步進電機,單極型和雙極型電晶體,而且知道你正在使用哪種型別是非常重要的。每種電機,都有一個不同的電路。示例程式碼將控制兩種電機。看看單極性和雙極性電機的原理圖,和關於如何連線你的電機的資訊。
- 在這個例子中,軸是一個完整的旋轉順時針旋轉,通過Arduino Stepper庫來控制步進電機的步進數目。無論是單極或雙極電機,均由數字引腳8,9,10,和11控制步進。
- 如果你正在使用一個單極型步進電機,Arduino或genuino開發板將會連線到一個U2004達林頓管陣列。
硬體要求
- Arduino UNO板
- 步進電機
- U2004 達林頓管陣列 (如果用單極型電機)
- 杜邦線
- 外接電源(5V-12V)
ULN2003驅動模組
ULN2003步進電機驅動板作用是更簡單的用Arduino控制28BYJ-48步進電機。驅動板的電機供電介面可以連線到Arduino的GND和5V取電,但是不推薦這種方法,推薦用獨立的5-12伏1安培的電源或電池組取電。“IN1~IN4”連線arduino的4個數字口(在程式碼裡進行相應的設定)。
28BYJ-48步進電機
28BYJ-48步進電機的齒輪減速比為64:1,轉速約15轉/分鐘,一些軟體採用某些手段和高電壓電源(如12伏直流)也能達到約25轉/分鐘的轉速。
4步控制訊號序列:11.25度/步,32步旋轉一週。
8步控制訊號序列:5.625度/步, 64步旋轉一週。
正常情況下,4步模式下旋轉一週將用:32(步/周)X64(齒輪比) = 2048 步。
接線
步進電機 | Arduino UNO |
---|---|
IN1 | 8 |
IN2 | 9 |
IN3 | 10 |
IN4 | 11 |
VCC | VCC |
IGBD | GND |
程式:
//使用arduino IDE自帶的Stepper.h庫檔案
#include <Stepper.h>
// 這裡設定步進電機旋轉一圈是多少步
#define STEPS 100
//設定步進電機的步數和引腳(就是注意點2裡面說的驅動板上IN1~IN4連線的四個數字口)。
Stepper stepper(STEPS, 8, 10, 9, 11);
void setup()
{
// 設定電機的轉速:每分鐘為90步
stepper.setSpeed(90);
// 初始化串列埠,用於除錯輸出資訊
Serial.begin(9600);
}
void loop()
{
// 順時針旋轉一週
Serial.println("shun");
stepper.step(2048); //4步模式下旋轉一週用2048 步。
delay(500);
// 逆時針旋轉半周
Serial.println("ni");
stepper.step(-1024); //4步模式下旋轉一週用2048 步。
delay(500);
}
拓展知識(轉):
1.什麼是步進電機?
步進電機是一種將電脈衝轉化為角位移的執行機構。通俗一點講:當步進驅動器接收到一個脈衝訊號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。您可以通過控制脈衝個來控制角位移量,從而達到準確定位的目的;同時您可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
2.步進電機分哪幾種?
步進電機分三種:永磁式(PM),反應式(VR)和混合式(HB)
永磁式步進一般為兩相,轉矩和體積較小,步進角一般為7.5度 或15度;
反應式步進一般為三相,可實現大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。在歐美等發達國家80年代已被淘汰;
混合式步進是指混合了永磁式和反應式的優點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為 0.72度。這種步進電機的應用最為廣泛。
3.什麼是保持轉矩(HOLDING TORQUE)?
保持轉矩(HOLDING TORQUE)是指步進電機通電但沒有轉動時,定子鎖住轉子的力矩。它是步進電機最重要的引數之一,通常步進電機在低速時的力矩接近保持轉矩。由於步進電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉矩就成為了衡量步進電機最重要的引數之一。比如, 當人們說2N.m的步進電機,在沒有特殊說明的情況下是指保持轉矩為2N.m的步進電機。
4.什麼是DETENT TORQUE?
DETENT TORQUE 是指步進電機沒有通電的情況下,定子鎖住轉子的力矩。DETENT TORQUE 在國內沒有統一的翻譯方式,容易使大家產生誤解;由於反應式步進電機的轉子不是永磁材料,所以它沒有DETENT TORQUE。
5.步進電機精度為多少?是否累積?
一般步進電機的精度為步進角的3-5%,且不累積。
6.步進電機的外表溫度允許達到多少?
步進電機溫度過高首先會使電機的磁性材料退磁,從而導致力矩下降乃至於失步,因此電機外表允許的最高溫度應取決於不同電機磁性材料的退磁點;一般來講,磁性材料的退磁點都在攝氏130度以上,有的甚至高達攝氏200度以上,所以步進電機外表溫度在攝氏80-90度完全正常。
7.為什麼步進電機的力矩會隨轉速的升高而下降?
當步進電機轉動時,電機各相繞組的電感將形成一個反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機隨頻率(或速度)的增大而相電流減小,從而導致力矩下降。
8.為什麼步進電機低速時可以正常運轉,但若高於一定速度就無法啟動,並伴有嘯叫聲?
步進電機有一個技術引數:空載啟動頻率,即步進電機在空載情況下能夠正常啟 動的脈衝頻率,如果脈衝頻率高於該值,電機不能正常啟動,可能發生丟步或堵轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈衝頻率應該有加速過程,即啟動頻率較低,然後按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。
9.如何克服兩相混合式步進電機在低速運轉時的振動和噪聲?
步進電機低速轉動時振動和噪聲大是其固有的缺點,一般可採用以下方案來克服:
A.如步進電機正好工作在共振區,可通過改變減速比等機械傳動避開共振區;
B.採用帶有細分功能的驅動器,這是最常用的、最簡便的方法;
C.換成步距角更小的步進電機,如三相或五相步進電機;
D.換成交流伺服電機,幾乎可以完全克服震動和噪聲,但成本較高;
E.在電機軸上加磁性阻尼器,市場上已有這種產品,但機械結構改變較大。
10.細分驅動器的細分數是否能代表精度?
步進電機的細分技術實質上是一種電子阻尼技術(請參考有關文獻),其主要目的是減弱或消除步進電機的低頻振動,提高電機的運轉精度只是細分技術的一個附帶功能。比如對於步進角為1.8°的兩相混合式步進電機,如果細分驅動器的細分數設定為4,那麼電機的運轉解析度為每個脈衝0.45°,電機的精度能否達到或接近0.45°,還取決於細分驅動器的細分電流控制精度等其它因素。不同廠家的細分驅動器精度可能差別很大;細分數越大精度越難控制。
11.四相混合式步進電機與驅動器的串聯接法和並聯接法有什麼區別?
四相混合式步進電機一般由兩相驅動器來驅動,因此,連線時可以採用串聯接法或並聯接法將四相電機接成兩相使用。串聯接法一般在電機轉速較的場合使用,此時需要的驅動器輸出電流為電機相電流的0.7倍,因而電機發熱小;並聯接法一般在電機轉速較高的場合使用(又稱高速接法),所需要的驅動器輸出電流為 電機相電流的1.4倍,因而電機發熱較大。
12.如何確定步進電機驅動器的直流供電電源?
A.電壓的確定
混合式步進電機驅動器的供電電源電壓一般是一個較寬的範圍(比如IM483的供電電壓為12~48VDC),電源電壓通常根據電機的工作轉速和響應要求來選擇。如果電機工作轉速較高或響應要求較快,那麼電壓取值也高,但注意電源電壓的紋波不能超過驅動器的最大輸入電壓,否則可能損壞驅動器。
B.電流的確定供電電源電流一般根據驅動器的輸出相電流I來確定。如果採用線性電源,電源電流一般可取I的1.1~1.3倍;如果採用開關電源,電源電流一般可取I 的1.5~2.0倍。
13.混合式步進電機驅動器的離線訊號FREE一般在什麼情況下使用?
當離線訊號FREE為低電平時,驅動器輸出到電機的電流被切斷,電機轉子處於自由狀態(離線狀態)。在有些自動化裝置中,如果在驅動器不斷電的情況下要求直接轉動電機軸(手動方式),就可以將FREE訊號置低,使電機離線,進行手動操作或調節。手動完成後,再將FREE訊號置高,以繼續自動控制。
14.如果用簡單的方法調整兩相步進電機通電後的轉動方向?
只需將電機與驅動器接線的A+和A-(或者B+和B-)對調即可。