怎樣控制步進電機

2020-12-08 電子發燒友

為什麼要使用步進電機?

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

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

步進電機需要多個步進脈衝才能到達您想要的位置。此外,步進電機線圈始終通電,大大增加了保持轉矩,但強制轉動則很困難。這些優勢解釋了為什麼步進電機常用於許多應用,包括CNC工具機和CD/DVD驅動器。

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

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

由Digikey提供(原理圖)

單極輸入和步進

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

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

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

表1.電機旋轉狀態

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

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

編碼步進電機

步進電機的編碼步驟可以通過switch語句和一些I/O位完成,但有一種更簡單的方法:使用內置的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

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

#define STEPS_PER_REV 513

現在我們有了定義的步數,我們需要創建一個步進電機對象。該對象初始化為五個變量:每轉的步數和連接步進電機的四個引腳。

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

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

void setup() {

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

}

主循環包含轉動電機所需的代碼。正數表示電機等於前進的次數,而負數表示電機向相反方向旋轉。

此示例中的三行代碼顯示STEPS_PER_RPM如何用於將電機轉動已知量。

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

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 步進電機是怎樣控制脈衝信號
    工業機械設備的快速發展,為步進電機生產行業提供了一個最佳平臺,可以說電機是整個機械控制系統的總指揮,傳統的控制系統以反應靈敏度差,運轉速度慢等眾多的缺點而漸漸的被電機市場所淘汰,新一代步進電機的問世為電機行業給電機行業再次帶來了巨大的革新,
  • 伺服電機控制能否代替步進電機控制,交流伺服電機與步進電機的區別...
    步進電機是一種感應電機,它的工作原理是利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作,驅動器就是為步進電機分時供電的,多相時序控制器。  雖然步進電機已被廣泛地應用,但步進電機並不能像普通的直流電機,交流電機在常規下使用。它必須由雙環形脈衝信號、功率驅動電路等組成控制系統方可使用。
  • 伺服電機與步進電機的區別差異,步進電機控制能否用伺服電機控制代替
    步進電機是一種將數字脈衝信號轉化為角位移的執行機構。也就是說,當步進驅動器接收到一個脈衝信號,它就驅動步進電機按設定的方向轉動一個固定的角度(即步進角、步距角)。您可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時您可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。一般步進電機的精度為步進角的3-5%,且不累積。
  • 步進電機細分控制
    >控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,電機則轉過一個步距角,同時步進電機只有周期性的無累積誤差,精度高。
  • 步進電機PLC的直接控制
    步進電機的角位移與輸入脈衝個數成正比,其轉速與脈衝頻率成正比,其轉向與脈衝分配到步進電機的各相繞組的相序有關。由於步進電機的轉角、轉速和轉向均可採用數字量(脈衝)控制,故步進電機廣泛應用於數字伺服領域。圖1表示了步進電機的典型應用。
  • 製作步進電機控制模塊
    通過那篇文章,我們知道要控制步進電機旋轉就需要時刻給步進電機發送脈衝。這帶來了些問題,比如需要步進電機一直旋轉,單片機就只能一直給它發送脈衝了,就很難去做其他事情了。還有步進電機相位越多需要控制引腳也就越多,如果步進電機數量多了單片機引腳根本不夠用,那麼有沒有解決方法呢?
  • 步進電機旋轉角度的控制
    步進電機1、步進電機控制簡介步進電機是將電脈衝信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,當步進驅動器接收到一個脈衝信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為"步距角",它的旋轉是以固定的角度一步一步運行的。可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
  • 單片機控制步進電機的原理
    本資料詳細介紹鄧步進電機的工作原理以及單片機控制步進電機的特點。步進電機是數字控制電機,它將脈衝信號轉變成角位移,即給一個脈衝信號,步進電機就轉動一個角度,因此非常適合於單片機控制。    步進電機可分為反應式步進電機、永磁式步進電機和混合式步進電機。
  • 步進電機的正反轉轉動方向應如何控制?
    步進電機的轉角,轉速,旋轉方向分別與輸入脈衝的個數、頻率、通電順序有關。   步進電機正反轉是怎樣實現的,什麼是步進電機方向信號?   方向電平信號DIR用於控制步進電機的旋轉方向。此端為高電平時,電機一個轉向;此端為低電平時,電機為另一個轉向。電機換向必須在電機停止後再進行,並且換向信號一定要在前一個方向的最後一個CP脈衝結束後以及下一個方向的第一個CP脈衝前發出。   當您的控制韶(上位機)發出的是雙脈衝[即正負脈衝)或脈衝信號的幅值不匹配時,需要用我們的信號模塊轉換為5v單脈衝(脈:中加方向)。
  • 步進驅動器工作原理_步進電機驅動器上撥碼開關怎樣設置
    打開APP 步進驅動器工作原理_步進電機驅動器上撥碼開關怎樣設置 ceasia-china.com 發表於 2020-05-21 10:51:32
  • 步進電機開環控制的原理
    步進電機開環控制的原理   當步進電機的定子一相繞組流過直流電流時,最接近該相的轉子齒被定子相吸引,因產生的電磁轉矩大於負載轉矩,從而使轉子運動。切換相的次數與步距角的乘積為步進(專有名詞為步動作增加的角度)角度,此值決定最終靜止位置。相對負載轉矩來說,如步進電機產生的轉矩足夠大,則切換指令就能驅動負載,作位置控制。此時的位置平衡力是由步進電機靜態轉矩產生的。   如下圖表示兩相PM型步進電機的各相矩角特性曲線的情況。當「槓A」相繞組激磁時,要使帶負載的轉子產生位移,負載應在轉子與A相的作用力範圍內。
  • 步進電機控制系統的設計方案
    而且由於步進電機價格低廉、可控性強等特點,使其在數控工具機傳送控制等自動控制領域中得到了廣泛的應用。但隨著技術的發展以及企業生產的要求,步進電機傳統的以單片機等微處理器為核心單元的控制系統暴露出了如下缺點:控制策略單一不利於實現人機互動,而且控制電路複雜、控制精度低、生產成本高,系統穩定性不夠,步進解析度低、缺乏靈活性,低頻時的振蕩和噪聲大,而且受步進電機機械結構和空間的限制,步進電機的步距角不可能無限的小,難以滿足高精度開環控制的需求。
  • PLC控制步進電機方法
    2、步進電機速度控制 FP1有一條SPD0指令,該指令配合HSC和Y7脈衝輸出功能可實現速度及位置控制。速度控制梯形圖見圖1,控制方式參數見圖2,脈衝輸出頻率設定曲線見圖3。圖4 控制系統原理圖 圖4是控制系統原理接線圖,圖4中Y7輸出脈衝作為步進電機時鐘脈衝,經驅動器產生節拍脈衝,控制步進電機運轉。
  • 三菱plc控制步進電機實例
    打開APP 三菱plc控制步進電機實例 發表於 2019-10-01 09:05:00   三菱PLC控制步進電機實例如下:   案例一:   1.接線圖   上圖的接線為控制一臺步進電機接線
  • 步進電機控制電路的實現方法
    從步進電機及細分控制的基本原理分析入手,論述了步進電機細分控制電路的實現方法。關鍵詞:步進電機;細分控制;電路設計。1  引言 步進電機又被稱為步進器,屬於感應電機的範疇,其能夠按照電磁學的原理將電能轉化為機械能。在現代數控系統中,步進電機是不可或缺的主要執行元件之一,步進電機藉助電子電路,可將直流電變成分時供電、多相時序控制電流。在步進電機正常運行時,可以通過細分控制進一步提升電機穩定運行的頻率範圍,並增加解析度、減小低頻振動及噪音、溫升和高頻失步[1-6]。
  • 單片機對儀表步進電機的細分控制
    是將電脈衝信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,即給電機某相線圈加一脈衝信號,電機則轉過一個步距角。這一線性關係的存在,加上步進電機只有周期性的誤差而無累積誤差等特點,使得在速度、位置等控制領域用步進電機來控制變得非常簡單。雖然步進電機已被廣泛地應用,但步進電機並不像普通的直流電機、交流電機那樣在常規下使用。
  • 51單片機控制四相步進電機
    這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。地線與四線接觸的順序相反,電機的轉向也相反。如果用單片機來控制此步進電機,則只需分別依次給四線一定時間的脈衝電流,電機便可連續轉動起來。通過改變脈衝電流的時間間隔,就可以實現對轉速的控制;通過改變給四線脈衝電流的順序,則可實現對轉向的控制。
  • 意法半導體:通用電機與步進電機控制方案
    運轉順暢和高效率推動了電機控制的發展。  面向PMSM、PMAC和感應電機(其採用高性能微控制器、功率電晶體與高壓柵極驅動器IC)的磁場定向控制(FOC)軟體的發展滿足了對更高效率的需求。 對於功率較低的應用而言,面向步進電機的新型高集成度控制器/驅動器IC可以為步進電機實現更順暢的運轉和更高的定位精度。
  • 步進電機細分控制原理
    步進電機控制已經蘊含了細分的原理。電機內部磁場每旋轉一個圓周, 步進電機前進一整個步距角。若四相步進電機按A→B→C→D→A 的順序輪流通電, 即整步工作, 磁場分四拍旋轉, 每次電流換向, 步進電機將前進整步距角的1/4。而按A→AB→B→BC→C→CD→D→DA→A 的順序輪流通電, 即半步工作, 每次電流換向, 步進電機將前進整步距角的1/8。
  • 單片機與TA8435的步進電機細分控制
    1 步進電機 步進電動機是純粹的數字控制電動機,它將電脈衝信號轉變為角位移,即給一個脈衝,步進電機就轉一個角度,因此非常合適單片機控制,在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數