使用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);
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP