步進電機是一種将電脈沖信号轉換成相應角位移或線位移的電動機。每輸入一個脈沖信号,轉子就轉動一個角度,其輸出的角位移與輸入的脈沖數成正比,轉速與脈沖頻率成正比。
步進電機在自動控制系統中應用廣泛。3D打印機,寫字機,機器人中都能見到它們的身影,高精度,高可靠的步進電機通常較貴。今天我們就先來介紹一種DIY小制作中常用的,并且便宜的不能再便宜的步進電機——28BYJ-48步進電機模塊。
28BYJ-48步進電機
主要特性因此,目前打印機,繪圖儀,機器人,等等設備都以步進電機為動力核心。
外形尺寸該步進電機尺寸較小,可以适用于各種小場景中,電機兩側的耳朵可以用于M3的螺釘固定。
驅動方法
步進電機28BYJ48型四相八拍電機,電壓為DC5V—DC12V。當對步進電機施加一系列連續不斷地控制脈沖時,它可以連續不斷地轉動。每一個脈沖信号對應步進電機的某一相或兩相繞組的通電狀态改變一次,也就對應轉子轉過一定的角度(一個步距角)。當通電狀态的改變完成一個循環時,轉子轉過一個齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A。。。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)
主要技術參數
驅動模塊
28BYJ48型步進電機主要通過ULN2003驅動闆驅動。
ULN2003驅動闆
ULN2003是高耐壓、大電流達林頓陳列,由七個矽 NPN 達林頓管組成。ULN2003 的每一對達林頓都串聯一個 2.7K的基極電阻,在 5V 的工作電壓下它能與 TTL 和 CMOS 電路直接相連,可以直接處理原先需要标準邏輯緩沖器來處理的數據。
ULN2003 工作電壓高,工作電流大,灌電流可達 500mA,并且能夠在關态時承受 50V 的電壓,輸出還可以在高負載電流并行運行。
用ULN2003驅動步進電機的原理圖如下:
紅線接電源5V,橙色電線接P1.3口,黃色電線接P1.2口,粉色電線接P1.1口,藍色接P1.0口。由于單片機接口信号不夠大需要通過ULN2003放大再連接到相應的電機接口。
橙 |
黃 |
粉 |
藍 |
十六制(P1口) |
1 |
0 |
0 |
0 |
0x08 |
1 |
1 |
0 |
0 |
0x0c |
0 |
1 |
0 |
0 |
0x04 |
0 |
1 |
1 |
0 |
0x06 |
0 |
0 |
1 |
0 |
0x02 |
0 |
0 |
1 |
1 |
0x03 |
0 |
0 |
0 |
1 |
0x01 |
1 |
0 |
0 |
1 |
0x09 |
旋轉相序uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆時鐘旋轉相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正時鐘旋轉相序表
Arduino實驗下面我們就用Arduino UNO驅動步進電機模塊工作吧。
硬件設備:
接線圖:
将驅動模塊的IN1-IN4分别連到Arduino1-4數字引腳上,連接電源和接地線;不過,這裡建議電機單獨5V供電哦。
程序:
上面說了這麼多驅動步進電機的方法,但是到了Arduino這裡,上面都變得簡單了,因為他有專用的步進電機驅動庫:Stepper.h
#include <Stepper.h> //導入庫
// 這裡設置步進電機旋轉一圈是多少步
#define STEPS 100
//設置步進電機的步數和引腳(驅動闆上IN1~IN4連接的四個數字口)。
Stepper stepper(STEPS, 0, 1, 2, 3);
void setup()
{
// 設置電機的轉速:每分鐘為90步
stepper.setSpeed(50);
}
void loop()
{
stepper.step(2048); //4步模式下旋轉一周用2048 步。正轉1圏360°
delay(5000);
stepper.step(-2048); //4步模式下旋轉一周用2048 步。反轉1圏360°
delay(5000);
}
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!