0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣控制步進電機

454398 ? 來源:工程師吳畏 ? 2019-07-26 09:32 ? 次閱讀

為什么要使用步進電機

步進電機是帶有許多內(nèi)齒的無刷直流電機,通過周圍的銅線圈磁性鎖定到位。與無刷電機不同,為步進電源供電電機不會轉(zhuǎn)動。相反,它鎖定到給定輸入指定的位置,順時針或逆時針轉(zhuǎn)一小步。

雖然這使得步進電機的驅(qū)動更加復雜,但與無刷直流電機相比具有一個主要優(yōu)勢:它們的角位置可以非常精確地指定。例如,如果您希望電機正好旋轉(zhuǎn)270度,那么使用普通直流無刷電機(沒有某種形式的反饋)幾乎是不可能的,但使用步進電機會很輕松。

步進電機需要多個步進脈沖才能到達您想要的位置。此外,步進電機線圈始終通電,大大增加了保持轉(zhuǎn)矩,但強制轉(zhuǎn)動則很困難。這些優(yōu)勢解釋了為什么步進電機常用于許多應(yīng)用,包括CNC機床和CD/DVD驅(qū)動器。

步進電機電動機分為兩個階段:單極和雙極。單極電機包含連接所有線圈的公共電源,而雙極電機具有分離的線圈。

本文僅介紹單極電機,因為雙極電機需要以不同的方式驅(qū)動。

怎樣控制步進電機

由Digikey提供(原理圖)

單極輸入和步進

單極電機通常有5根輸入線 - 兩根成對線控制線圈,第五根線連接到為每個線圈提供公共分接頭。

雖然線路顏色因電機而異,但這里有連接在本文中使用:

下表顯示了如何驅(qū)動每個輸入以旋轉(zhuǎn)電機。向前移動(即從步驟1到2)使電機順時針轉(zhuǎn)動,而向后移動則使電機逆時針轉(zhuǎn)動。

表1.電機旋轉(zhuǎn)狀態(tài)

步進電機可能需要的電流遠遠超過微控制器的限制,這就是微控制器必須從不直接連接到電機的原因。電機還可能產(chǎn)生反電動勢,可能會損壞I/O端口,并且絕對必須使用鉗位二極管。

然而,驅(qū)動帶有四個分立晶體管的步進電機會浪費和笨重,這就是為什么必須使用ULN2003步進驅(qū)動器IC 。該IC包含七個達林頓晶體管,每個晶體管都包含二極管保護,能夠提供500mA,50V輸出(實際上比Arduino Uno可以處理的更多)。

編碼步進電機

步進電機的編碼步驟可以通過switch語句和一些I/O位完成,但有一種更簡單的方法:使用內(nèi)置的Stepper Library!

雖然Arduino是一個方便而簡單的平臺,但它的庫支持使它成為最好的平臺之一市場上的模塊通過Arduino庫兼容。對于步進電機,我們可以使用步進器庫輕松控制它們,無需對每一步進行編碼。

#include

#define STEPS_PER_REV 513

// Create our stepper motor object

Stepper motor(STEPS_PER_REV, 2, 3, 4, 5);

void setup() {

motor.setSpeed(10); // Motor speed of 10 RPM

}

void loop()

{

motor.step(STEPS_PER_REV); // Step clockwise one whole revolution

motor.step(STEPS_PER_REV / 2); // Step clockwise half revolution

motor.step(-STEPS_PER_REV); // Step counter clockwise one whole revolution

}

要使用步進電機庫我們首先要包括步進電機庫頭:

#include

下一步(可選但推薦)是定義電機在一整圈內(nèi)旋轉(zhuǎn)的步數(shù)。本教程中使用的電機有32個步驟,并連接到比率為1:16的減速齒輪,因此一次旋轉(zhuǎn)的步數(shù)為513.

#define STEPS_PER_REV 513

現(xiàn)在我們有了定義的步數(shù),我們需要創(chuàng)建一個步進電機對象。該對象初始化為五個變量:每轉(zhuǎn)的步數(shù)和連接步進電機的四個引腳。

Stepper motor(STEPS_PER_REV, 2, 3, 4, 5);

在設(shè)置功能中,我們可以定義速度(以RPM為單位)我們希望我們的電機轉(zhuǎn)動。對于這個例子,我們將RPM設(shè)置為10.

void setup() {

motor.setSpeed(10); // Motor speed of 10 RPM

}

主循環(huán)包含轉(zhuǎn)動電機所需的代碼。正數(shù)表示電機等于前進的次數(shù),而負數(shù)表示電機向相反方向旋轉(zhuǎn)。

此示例中的三行代碼顯示STEPS_PER_RPM如何用于將電機轉(zhuǎn)動已知量。

motor.step(STEPS_PER_REV); // Step clockwise one whole revolution

motor.step(STEPS_PER_REV / 2); // Step clockwise half revolution

motor.step(-STEPS_PER_REV); // Step counter clockwise one whole revolution

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 步進電機
    +關(guān)注

    關(guān)注

    150

    文章

    3076

    瀏覽量

    147182
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186349
收藏 人收藏

    評論

    相關(guān)推薦

    步進電機轉(zhuǎn)速怎么控制高低

    步進電機是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的開環(huán)控制元件。在非超載的情況下,電機的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,當
    的頭像 發(fā)表于 10-22 15:55 ?54次閱讀

    步進電機控制技術(shù)及發(fā)展概況有哪些?

    步進電機是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的執(zhí)行元件,廣泛應(yīng)用于各種自動化控制系統(tǒng)中。步進電機控制
    的頭像 發(fā)表于 10-22 11:50 ?79次閱讀

    步進電機伺服控制系統(tǒng)的作用

    步進電機伺服控制系統(tǒng)是一種精密的電機控制系統(tǒng),它通過精確控制
    的頭像 發(fā)表于 09-04 09:46 ?465次閱讀

    步進電機控制原理與應(yīng)用實例

    步進電機,作為一種特殊的電機類型,在現(xiàn)代工業(yè)控制系統(tǒng)中占據(jù)著重要的地位。其獨特的控制方式和廣泛的應(yīng)用領(lǐng)域,使得
    的頭像 發(fā)表于 06-25 14:34 ?629次閱讀

    步進電機控制器電路圖 步進電機控制器的分類及其特點

      步進電機控制器是一種專門用于控制步進電機的設(shè)備,它通過發(fā)出脈沖信號來驅(qū)動
    的頭像 發(fā)表于 06-24 17:12 ?2248次閱讀
    <b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>器電路圖 <b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>器的分類及其特點

    什么是步進電機控制器?步進電機控制器電路圖

    步進電機控制器是一種專門用于控制步進電機運行的裝置。步進
    的頭像 發(fā)表于 06-20 16:14 ?1133次閱讀
    什么是<b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>器?<b class='flag-5'>步進</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>器電路圖

    步進電機控制系統(tǒng)是什么意思

    步進電機控制系統(tǒng),作為現(xiàn)代工業(yè)自動化和精密控制領(lǐng)域的重要組成部分,其工作原理和實現(xiàn)方式一直受到廣泛關(guān)注。步進
    的頭像 發(fā)表于 06-18 18:12 ?697次閱讀

    步進電機通過什么控制轉(zhuǎn)動角度

    步進電機是一種電磁驅(qū)動的旋轉(zhuǎn)電機,它具有精確控制轉(zhuǎn)動角度的特性。步進電機的工作原理是通過改變線圈
    的頭像 發(fā)表于 06-12 09:49 ?993次閱讀

    什么是步進電機的細分控制步進電機為什么要細分,如何細分?

    什么是步進電機的細分控制步進電機為什么要細分,如何細分? 步進
    的頭像 發(fā)表于 02-18 09:39 ?6346次閱讀

    arduino控制步進電機代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設(shè)備,包括步進電機步進電機是一種電動機,可以通過下達特定的指令來
    的頭像 發(fā)表于 02-14 16:29 ?1741次閱讀

    步進電機控制方法 步進電機和伺服電機的區(qū)別

    步進電機控制方法 步進電機是一種將電信號轉(zhuǎn)化為機械轉(zhuǎn)動的電動機,其輸出轉(zhuǎn)角是按照電脈沖控制信號的
    的頭像 發(fā)表于 01-22 17:18 ?1030次閱讀

    步進電機控制方法 步進電機控制器參數(shù)設(shè)置

    步進電機是一種在控制系統(tǒng)中常見的電機類型,它以步進角度為單位進行旋轉(zhuǎn),并且可以精確控制位置和速度
    的頭像 發(fā)表于 01-19 10:50 ?2460次閱讀

    步進電機控制方法及需要哪些控制信號

    步進電機是一種將電子信號轉(zhuǎn)化為機械運動的電動機,廣泛應(yīng)用于機器人、打印機、數(shù)碼相機等領(lǐng)域。步進電機由于其精度高、固有扭矩大、容易控制等特點,
    的頭像 發(fā)表于 12-20 11:21 ?2966次閱讀

    步進電機定位控制的常用方法

    步進系統(tǒng)=步進驅(qū)動器+步進電機步進電機步進驅(qū)動器
    發(fā)表于 10-30 11:30 ?2883次閱讀
    <b class='flag-5'>步進</b><b class='flag-5'>電機</b>定位<b class='flag-5'>控制</b>的常用方法

    步進電機開環(huán)控制與閉環(huán)控制有什么區(qū)別?

    步進電機開環(huán)控制與閉環(huán)控制有什么區(qū)別? 介紹步進電機開環(huán)控制
    的頭像 發(fā)表于 10-24 11:49 ?1501次閱讀