☛ 功能說明
利用 Arduino UNO 開發板控制步進馬達 28BYJ-48 轉動方向。當步進馬達的順時針轉動時,點亮綠色 LED 燈;馬達反轉時,點亮黃色 LED 燈;馬達停止時,點亮紅色 LED 燈。步進馬達的動作順序爲,先順時針轉動一圈,接着逆時針轉動一圈,然後停止二秒後,再重複動作順序。
☛ 使用材料
Arduino UNO R3 開發板 × 1、ULN2003 芯片 × 1、步進馬達 28BYJ-48 × 1、LED × 3、電阻 220Ω × 3。
☛ 電路圖及麪包板接線圖
☛ 程式碼
#include <Stepper.h> //使用 Stepper.h 函式庫 #define STEPS 2038 //步進馬達轉動一圈步進數 Stepper stepper(STEPS, 2, 4, 3, 5); //建立 Steeper 資料形態的物件 int motoStep = 63.68395; //步進馬達 28BYJ-48 每一步步進值 int i = 1; //步進馬達動作索引值 void setup() { pinMode(7, OUTPUT); //數位接腳 7 連接至黃色 LED pinMode(8, OUTPUT); //數位接腳 8 連接至綠色 LED pinMode(9, OUTPUT); //數位接腳 9 連接至紅色 LED stepper.setSpeed(10); //設定步進馬達的轉速爲 10 RPM } void loop() { switch(i) { case 1: digitalWrite(7,LOW); //熄滅黃色 LED digitalWrite(8,HIGH); //熄滅黃色 LED digitalWrite(9,LOW); //熄滅紅色 LED stepper.step(-32*motoStep); //馬達正轉 32 步 i++; break; case 2: digitalWrite(7,HIGH); //點亮黃色 LED digitalWrite(8,LOW); //熄滅綠色 LED digitalWrite(9,LOW); //熄滅紅色 LED stepper.step(32*motoStep); //馬達反轉 32 步 i++; break; case 3: digitalWrite(7,LOW); //熄滅黃色 LED digitalWrite(8,LOW); //熄滅綠色 LED digitalWrite(9,HIGH); //點亮紅色 LED stepper.step(0*motoStep); //馬達停止轉動 delay(2000); //延遲 2 秒 i=1; break; } }