實驗說明:
- 步進電機馬達是一種將脈沖訊號轉化為角位移的執行機構。通俗一點講:當步進驅動器接收到一個脈衝信號,它就驅動步進馬達按設定的方向轉動一個固定的角度(及步進角)。你可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時你也可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
- 幾乎所有市售上的Arduino學習套件裡,都會有“ ULN2003+28BYJ-48步進馬達”這樣的組合,但是要搞定它們並沒想像中簡單,本文將帶大家用最簡單的方式輕鬆入門。
材料:
- Arduino Uno R3
- USB 傳輸線
- 28BYJ48步進馬達
- ULN2003驅動板
- 杜邦線
安裝 Stepper 程式庫:
本次試驗使用arduino直接驅動步進驅動器,需安裝 Stepper 函式庫。
- 在 Arduino 整合環境功能表點選 草稿碼 / 匯入程式庫 / 管理程式庫
- 在右上方搜尋框輸入「 Stepper 」,下方會列出所有符合條件的程式庫,不同程式庫使用的程式碼並不相同。此處點 選「 Stepper」,該項目右下角會出現「安裝」鈕,按「安裝」鈕開始安裝。
接線說明:
程式:
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
myStepper.setSpeed(5);
}
void loop() {
myStepper.step(stepsPerRevolution);
delay(500);
myStepper.step(-stepsPerRevolution);
delay(500);
}
程式說明:
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
28BYJ-48 5V DC 的規格上寫著,步進角為 5.625 / 64,因此這馬達轉一圈需要的步數是 360 / (5.625 / 64),也就是 4096 步,不過,這是一/二相激磁才會有的步數,如果你查看Stepper 程式庫原始碼,會發現,它是採二相激磁的實作方式,因此,使用這個 Stepper 程式庫,你實際上要設的 stepsPerRevolution 必須是 2048步。
將程式碼上傳到Arduino後,可以看到,步進開始先逆時針運轉,然後再順時針運轉。