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

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

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

怎樣控制步進(jìn)電機(jī)

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

為什么要使用步進(jìn)電機(jī)?

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

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

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

步進(jìn)電機(jī)電動(dòng)機(jī)分為兩個(gè)階段:?jiǎn)螛O和雙極。單極電機(jī)包含連接所有線圈的公共電源,而雙極電機(jī)具有分離的線圈。

本文僅介紹單極電機(jī),因?yàn)殡p極電機(jī)需要以不同的方式驅(qū)動(dòng)。

怎樣控制步進(jìn)電機(jī)

由Digikey提供(原理圖)

單極輸入和步進(jìn)

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

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

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

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

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

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

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

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

雖然Arduino是一個(gè)方便而簡(jiǎn)單的平臺(tái),但它的庫(kù)支持使它成為最好的平臺(tái)之一市場(chǎng)上的模塊通過Arduino庫(kù)兼容。對(duì)于步進(jìn)電機(jī),我們可以使用步進(jìn)器庫(kù)輕松控制它們,無需對(duì)每一步進(jìn)行編碼。

#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

}

要使用步進(jìn)電機(jī)庫(kù)我們首先要包括步進(jìn)電機(jī)庫(kù)頭:

#include

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

#define STEPS_PER_REV 513

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

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

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

void setup() {

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

}

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

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

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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    150

    文章

    3042

    瀏覽量

    146850
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185922
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    步進(jìn)電機(jī)控制原理與應(yīng)用實(shí)例

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

    步進(jìn)電機(jī)控制器電路圖 步進(jìn)電機(jī)控制器的分類及其特點(diǎn)

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

    什么是步進(jìn)電機(jī)控制器?步進(jìn)電機(jī)控制器電路圖

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

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

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

    步進(jìn)電機(jī)通過什么控制轉(zhuǎn)動(dòng)角度

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

    什么是步進(jìn)電機(jī)的細(xì)分控制?步進(jìn)電機(jī)為什么要細(xì)分,如何細(xì)分?

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

    arduino控制步進(jìn)電機(jī)代碼

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

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

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

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

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

    步進(jìn)電機(jī)控制方法及需要哪些控制信號(hào)

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

    步進(jìn)電機(jī)控制系統(tǒng)程序如何設(shè)計(jì)

    首先需要確定步進(jìn)電機(jī)控制系統(tǒng)的控制要求,包括控制精度、速度、轉(zhuǎn)向等方面。例如,在機(jī)械加工中,需要根據(jù)加工要求來確定
    的頭像 發(fā)表于 11-18 17:13 ?1641次閱讀

    步進(jìn)電機(jī)定位控制的常用方法

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

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

    步進(jìn)電機(jī)開環(huán)控制和閉環(huán)控制的區(qū)別概述:步進(jìn)電機(jī)是一種特殊的
    的頭像 發(fā)表于 10-28 08:07 ?3268次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>開環(huán)<b class='flag-5'>控制</b>與閉環(huán)<b class='flag-5'>控制</b>有什么區(qū)別?

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

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