Arduino 步進(jìn)電機(jī)

2018-11-22 14:48 更新

步進(jìn)電機(jī)是無(wú)刷同步電機(jī),它將完整的旋轉(zhuǎn)分成多個(gè)步驟。與無(wú)刷直流電機(jī)不同,當(dāng)向其施加固定的直流電壓時(shí),它將連續(xù)旋轉(zhuǎn),步進(jìn)電機(jī)以不連續(xù)的步進(jìn)角旋轉(zhuǎn)。

因此,步進(jìn)電機(jī)被制造成具有每轉(zhuǎn)12,24,72,144,180和200的步長(zhǎng),從而產(chǎn)生每步30°,15°,5°,2.5°,2°和1.8°的步進(jìn)角。步進(jìn)電機(jī)可以有或沒(méi)有反饋控制。

想象一下在RC飛機(jī)上的電機(jī)。電機(jī)在一個(gè)方向或另一個(gè)方向上轉(zhuǎn)速非??臁D?/span>可以通過(guò)給予電機(jī)的功率量來(lái)改變速度,但是你不能讓螺旋槳停在特定位置。

現(xiàn)在想象一個(gè)打印機(jī)。打印機(jī)內(nèi)有很多移動(dòng)部件,包括電機(jī)。一個(gè)電機(jī)用作進(jìn)紙,當(dāng)墨水開(kāi)始印在紙上時(shí)旋轉(zhuǎn)滾軸移動(dòng)紙張。此電機(jī)需要能夠?qū)⒓垙堃苿?dòng)一個(gè)精確的距離,以便能夠打印下一行文本或圖像的下一行。

還有另一個(gè)電機(jī)連接到一個(gè)螺桿上來(lái)回移動(dòng)打印頭。同樣,該螺桿需要移動(dòng)一個(gè)精確的量,以便一個(gè)字母接一個(gè)地打印。這就是步進(jìn)電機(jī)派上用場(chǎng)的地方。

進(jìn)步機(jī)電

步進(jìn)電機(jī)如何工作?

常規(guī)的直流電動(dòng)機(jī)只在方向上旋轉(zhuǎn),而步進(jìn)電動(dòng)機(jī)可以以精確的增量旋轉(zhuǎn)。

步進(jìn)電機(jī)可以根據(jù)需要轉(zhuǎn)動(dòng)精確的度數(shù)(或步長(zhǎng))。這使你可以完全控制電機(jī),允許你將其移動(dòng)到精確的位置并保持在該位置。它通過(guò)為電機(jī)內(nèi)部的線(xiàn)圈非常短時(shí)間的供電來(lái)實(shí)現(xiàn)。缺點(diǎn)是你必須給電機(jī)一直供電,以將它保持在你想要的位置。

你現(xiàn)在需要知道的是,要移動(dòng)步進(jìn)電機(jī),你要告訴它在一個(gè)方向或另一個(gè)方向上移動(dòng)一定數(shù)量的步進(jìn),并告訴它沿那個(gè)方向步進(jìn)的速度。步進(jìn)電機(jī)的種類(lèi)繁多。這里描述的方法可以用于推斷如何使用本教程中未提到的其他電機(jī)和驅(qū)動(dòng)程序。但是,始終建議你查閱針對(duì)具體型號(hào)的電機(jī)和驅(qū)動(dòng)器的數(shù)據(jù)表和指南。

增量旋轉(zhuǎn)

必需的組件

你將需要以下組件:

  • 1 × Arduino UNO板
  • 1 ×小型雙極步進(jìn)電機(jī),如下圖所示
  • 1 ×LM298驅(qū)動(dòng)IC
小型雙極步進(jìn)電機(jī)

程序

按照電路圖進(jìn)行連接,如下圖所示。

電路圖

草圖

在計(jì)算機(jī)上打開(kāi)Arduino IDE軟件。使用Arduino語(yǔ)言進(jìn)行編碼控制你的電路。通過(guò)單擊“New”打開(kāi)一個(gè)新的草圖文件。

Sketch

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

代碼說(shuō)明

該程序驅(qū)動(dòng)單極或雙極步進(jìn)電機(jī)。電機(jī)連接到Arduino的數(shù)字引腳8-11。

結(jié)果

電機(jī)將在一個(gè)方向上旋轉(zhuǎn)一圈,然后在另一個(gè)方向上旋轉(zhuǎn)一圈。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)