Arduino - 步進電機

步進電機是無刷同步電機,它將整個旋轉分成多步。與無刷直流電動機不同的是,無刷直流電動機在向其施加固定的直流電壓時連續旋轉,步進電動機以不連續的步進角度旋轉。

因此,步進電機的每轉步數為 12,24,72,144,180 和 200,每步的步進角為 30,15,5,2.5,2 和 1.8 度。可以在有或沒有反饋的情況下控制步進電機。

想象一下遙控飛機上的電機。電機在一個方向或另一個方向上旋轉得非常快。你可以根據給予電機的功率來改變速度,但是你無法判斷螺旋槳是否停在特定位置。

現在來想一下印表機。印表機內部有許多活動部件,包括電機。一種這樣的馬達充當紙張進給,旋轉輥在紙張上印刷墨水時移動紙張。該電機需要能夠將紙張移動一段精確的距離,以便能夠列印下一行文字或影象的下一行。

另一個電動機連線到螺紋杆上,前後移動列印頭。同樣,該螺紋杆需要移動一個精確的數量,以便一個接一個地列印一個字母。這是步進電機派上用場的地方。

步進電機

步進電機如何工作?

常規直流電機僅在方向上旋轉,而步進電機可以以精確的增量旋轉。

步進電機可以根據需要轉動精確的度數(或步長)。這使你可以完全控制電機,使你可以將其移動到一個確切的位置並保持該位置。它通過在非常短的時間內為電動機內部的線圈供電來實現。缺點是你必須始終為電機供電,以使其保持在你想要的位置。

你現在需要知道的是,為了移動步進電機,你要告訴它在一個方向或另一個方向上移動一定數量的步驟,並告訴它向這個方向移動的速度。步進電機有很多種。此處描述的方法可用於推斷如何使用本教程中未提及的其他電機和驅動程式。但是,始終建議你查閱你所擁有的特定型號的電機和驅動器的資料手冊和指南。

內部步進電機

需要的元件

你將需要以下元件 -

  • 1×Arduino UNO 板
  • 1×小型雙極步進電機如下圖所示
  • 1×LM298 驅動 IC

LM298 驅動 IC

程式

按照電路圖進行連線,如下圖所示。

步進電機連線

草圖

在你的計算機上開啟 Arduino IDE 軟體。用 Arduino 語言編碼將控制你的電路。單擊“新建”開啟新的草圖檔案。

草圖

Arduino 程式碼

/* Stepper Motor Control */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
   // set the speed at 60 rpm:
   myStepper.setSpeed(5);
   // initialize the serial port:
   Serial.begin(9600);
}

void loop() {
   // step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
   // step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

程式碼注意

該程式驅動單極或雙極步進電機。電機連線到 Arduino 的數字引腳 8-11。

結果

電機將在一個方向上旋轉一圈,然後在另一個方向上旋轉一圈。