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