1.簡介
本回學習如何使用28BYJ-48 DC步進馬達及ULN2003驅動器,藉由程式控制電脈衝訊號轉化為角度位移量,設定旋轉方向、馬達旋轉步數,達到準確定位的目的
步進馬達步數計算:
以28BYJ-48 步進馬達的步進角度是5.625度,馬達減速比為1:64,當發送一個脈衝訊號,馬達旋轉5.625/64=0.088度,馬達旋轉一圈為360度,就需要360/(5.635/64)=4096個脈衝信號,轉一圈總共是4096個step
步進馬達規格參數:
- 電源:DC5~12V(建議用獨立5~12V1A電源驅動)
- 減速比:1/64
- 牽入轉矩(100Hz時):550 gf.cm(在不失步狀態,能夠啟動、停止和轉向的加速轉矩)
- 自定位轉矩:300 gf.cm(在沒有通電的情况下,定子鎖住轉子的轉矩)
- 步距角精度:約3-5%,且不累積

2.材料介紹與準備
- Arduino UNO控制板*1,電路程式控制的主要控制元件。點我購買
- 杜邦線 公母_10cm *4,連接電子元件。點我購買
- 28BYJ-48 DC步進馬達*1、ULN2003驅動器*1,馬達控制模組。點我購買
3. 安裝Unistep2函式庫

4.電路連接
- 馬達與驅動板之間是快速接頭,可直接插入
- 驅動板的IN1、IN2、IN3、IN4,分別用杜邦線連接至主控制版的8、9、10、11腳位
- 驅動板的正負極安裝至Arduino UNO的+5V、GND

5. 程式說明
#include <Unistep2.h>//匯入函示庫
Unistep2 stepper(8, 9, 10, 11, 4096, 1000);
//設定腳位IN1、IN2、IN3、IN4、總step數、每步的延遲(in micros)
void setup(){
}
void loop(){
stepper.run(); //步進馬達啟動
if ( stepper.stepsToGo() == 0 ){ // 如果stepsToGo=0,表示步進馬達已轉完應走的步數了
delay(500); //延遲0.5秒
stepper.move(4096); //步進馬達正轉一圈
//stepper.move(-4096); //負數就是反轉,反轉一圈
}
}