之前我們已經操作過伺服馬達了,透過Servo.h程式庫的加持以及Arduino板子上接腳的支援,就可以輕易地讓伺服馬達轉動到任意的角度,而且是絕對的角度,也就是我們說幾度就是到幾度。然而,話雖如此,但是所謂的任意角度其實是有限制的,大部份的伺服馬達可以設定的角度範圍都介於0到180度之間,更不用說要轉超過一圈了(360度轉動的伺服馬達沒有辦法指定絕對的角度,而且也沒有辦法精確地控制要轉幾圈)。如果有需要精確地設定轉動軸轉動的圈數,那麼就需要使用步進馬達。

步進馬達前進的原理主要是透過控制板依序地傳送進不同的訊號以建立不同的磁碟進而讓馬達前進或後退,因此需要有一個控制板來協助我們做這件事,零組件如下:

上方即是這次實習的步進馬達,它的規格是28BYJ-48 5V DC,另外它有一個專用的控制板,兩者連接之後的樣子如下:

上圖下方有一個5–12V的接腳,就如同之前我們在連接所有零組件的方式一樣,這裡要給它一個外部的電源,還是建議使用放在麵包板上的電源模組供電,然後別忘了麵包板上的負匯流排的位置也要連接一條到Arduino板子上的GND接腳。接著請把IN1,IN2,IN3,以及IN4連接到Arduino上的2, 3, 4, 5,不要接錯喔。連接完畢之後,即可使用以下的程式碼驅動此步進馬達進行正轉一圈以及反轉一圈的重覆運作。

#include <Stepper.h>

Stepper stepper(2048, 2, 4, 3, 5);

void setup() {
  stepper.setSpeed(5);
}

void loop() {
  stepper.step(2048);
  delay(2000);
  stepper.step(-2048);
  delay(2000);
}

以下是上述程式執行之後馬達運作的影片:

 

(994)