使用Arduino控制步進電機


步進電機將全旋轉分成許多離散的步進,範圍從低至每轉12步到高至每轉200步(對應於每步30度到每步1.8度的角度)。直流電機連續旋轉,而步進電機則以步進角離散旋轉。

電路圖

單極和雙極步進電機的電路圖和所需元件可以在這裡找到 - https://www.arduino.cc/en/Tutorial/LibraryExamples/StepperOneRevolution

請注意,步進電機透過達林頓陣列(對於單極步進電機)或H橋(對於雙極步進電機)連線到Arduino Uno的8-11引腳。步進電機使用外部電源供電,因為它消耗的功率太大,無法直接由Arduino板供電。

程式碼詳解

我們將逐步講解一個示例程式碼。轉到**檔案 → 示例 → 步進電機 → stepper_oneRevolution**。

或者,程式碼可以在GitHub上找到 - https://github.com/arduinolibraries/Stepper/blob/master/examples/stepper_oneRevolution/stepper_oneRevolution.ino

透過這段程式碼,我們使步進電機在一個方向旋轉一圈,然後在相反方向旋轉另一圈。

我們首先包含Stepper庫並定義每轉的步數(根據步進電機的規格更改此值)。

#include <Stepper.h>

const int stepsPerRevolution = 200;

接下來,我們使用stepsPerRevolution和連線到步進電機的Arduino四個引腳初始化Stepper物件。

Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

在setup中,我們設定步進電機的速度(RPM),並初始化Serial。

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

在loop中,我們使電機在一個方向上旋轉stepsPerRevolution步,然後透過附加負號在相反方向上旋轉stepsPerRevolution步。

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);
}

更新於:2021年5月31日

582 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.