步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。通俗一點講:當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(即步進角)。你可以通過控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的;同時你也可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的,這個就是本次試驗使用的步進電機。
使用步進電機前一定要仔細查看說明書,確認是四相還是兩相,各個線怎樣連接,本次實驗使用的步進電機是四相的,不同顏色的線定義:
減速步進電機的參數(shù):
直徑:28mm
電壓:5V
步進角度:5.625 × 1/64
減速比:1/64
5線4相 可以用普通uln2003芯片驅(qū)動,也可以接成2相使用
該步進電機空載耗電在50mA以下,帶64倍減速器,輸出力矩比較大,可以驅(qū)動重負載,極適合開發(fā)板使用。注意:此款步進電機帶有64倍減速器,與不帶減速器的步進電機相比,轉(zhuǎn)速顯得較慢,為方便觀察。
步進電機驅(qū)動板(UL2003)試驗板硬件連接,把代碼下載到arduino控制板中看看效果:
/*
* 步進電機跟隨電位器旋轉(zhuǎn)
* (或者其他傳感器)使用0號模擬口輸入
*使用Arduino IDE自帶的Stepper.h庫文件
*/
#include <Stepper.h>
// 這里設(shè)置步進電機旋轉(zhuǎn)一圈是多少步
#define STEPS 100
// attached to設(shè)置步進電機的步數(shù)和引腳
Stepper stepper(STEPS, 8, 9, 10, 11);
// 定義變量用來存儲歷史讀數(shù)
int previous = 0;
void setup()
{
// 設(shè)置電機每分鐘的轉(zhuǎn)速為90步
stepper.setSpeed(90);
}
void loop()
{
int val = analogRead(0); // 獲取傳感器讀數(shù)
stepper.step(val - previous);// 移動步數(shù)為當前讀數(shù)減去歷史讀數(shù)
previous = val;// 保存歷史讀數(shù)
}
試驗結(jié)果:步進電機可以緩慢地轉(zhuǎn)動了。