---
title: 步進馬達的原理與驅動—PART10
description: "**作者：Bird** 上一回[【Maker電子學】步進馬達的原理與驅動—PAR…"
url: "https://makerpro.cc/docs/principles-and-drive-of-stepper-motor-part10/"
updated: "2025-04-17"
category: 步進馬達
---

# 步進馬達的原理與驅動—PART10

**作者：Bird**

上一回[【Maker電子學】步進馬達的原理與驅動—PART9](https://makerpro.cc/2024/03/principles-and-drive-of-stepper-motor-part9/) 中，我們介紹了使用 A4988 的步進馬達驅動模組，以及使用這種模組的方法。這一回是這一系列的最終回，我們會介紹兩個步進馬達控制上的技巧：電流回授控制及閉環路控制。

### **Back EMF 與電流回授控制**

Back EMF 又叫做 counter EMF，全文是 back eletro-motive forace，中文常翻譯爲「反電動勢」，指的是會抵抗電流流過電感的電動勢。在馬達控制的領域中，所有的馬達都會遭遇 back EMF 的問題。

大部分的馬達倒過來使用都會變成發電機，也就是說如果你用機械力去旋轉一個馬達的輸出軸，馬達的線圈接線上就會有電壓產生，這個電壓就是反電動勢，而如果將這個電壓接成一個迴路，就會有電流，這個電流的方向會與要驅動馬達往同一個方向旋轉所需要的電流方向相反。

反電動勢是由馬達內部磁鐵產生的磁力線被繞組的線圈切割，而在線圈上感應出來的。大部分的無刷馬達定子都是線圈、轉子是磁鐵，因此當我們驅動一個馬達持續旋轉，隨著馬達的轉速越來越高，轉子磁鐵產生的磁場在定子線圈上感應出來的反電動勢也會越來越大，而這個反電動勢之所以叫「反」電動勢，就是因爲它會對抗流入線圈的驅動電流。

比方說，有個馬達，我們用 10 V 的電壓去驅動它時，它的定子線圈可以流入 1 A 的電流。我們可以計算出定子線圈的直流電阻是 10 V = 1 * R（R = 10 ohm），但當這個馬達轉速達到 1000 rpm 時，它的線圈上會有 6 V 的 back EMF，這時我們如果還是用 10 V 的電壓去驅動它，首先得要克服 6 V 的 back EMF，剩下的壓差才是可以驅動馬達的電壓，因此這時有效的驅動電壓只剩下 10 V - 6 V = 4 V，而能流入定子線圈的電流就會剩下 4 V = I * 10 ohm（I = 0.4 A），而馬達所輸出的扭力和電流有關，這時馬達的輸出扭力就只剩下從靜止開始驅動時的 40%，甚至在某些極端的情況下，當馬達的轉速極高時，由於 back EMF 等於驅動電壓，會讓驅動電流無法流入馬達，使得馬達無法被驅動。

雖然步進馬達的轉速通常比無刷馬達低很多，比較不會遭遇 back EMF 太高的問題，但在一些加速、減速控制範圍很大的應用中，如果我們希望步進馬達的輸出可以在不同速度下保持同樣的扭力，就會需要電流回授控制。

這是一個典型的電流回授的馬達驅動電路：

 ![](https://makerpro.cc/wp-content/uploads/2024/03/Screenshot-2024-03-25-220043.png)

（圖片來源：Bird 提供）

我們利用一個電流感測電阻，來感測流過馬達線圈以及驅動電晶體的電流。當流過線圈的電流受到 back EMF 的影響而變小時，電流感測電阻上的電壓就會變小，這個電壓會用一個電壓比較器和一個標準參考電壓比較，當這個電壓低於參考電壓時，就透過 PWM 控制器調控送往馬達線圈的電源，將電壓調高，好讓更多電流流入馬達線圈，直到到達目標電流爲止，而當這個電壓低於參考電壓時，表示流入馬達線圈的電流過多，這時 PWM 控制器就會降低送往馬達線圈的電源電壓，以降低流入馬達線圈的電流。

### **閉環路控制**

由於步進馬達本身的特性，它轉一圈的步數是固定的，不會有累積的誤差，因此一般我們在使用步進馬達時，多半是開環路控制。所謂開環路控制，就是不使用回授訊號去檢測馬達轉到哪裡了，而是單純的相信它，我們給幾個 step 脈波，它就會走幾步。

但在一些利用步進馬達做高速運動的應用中，當步進馬達的驅動轉速高到電流補償無法完全維持恆定扭力時，步進馬達可能發生「掉步」的問題，也就是說我們給了 step 脈波，驅動電路也切換了線圈的電流，但可能因爲扭力不足、機構上遇到阻礙或其它意外，導致步進馬達沒有前進。

由於沒有位置回授，我們完全不會知道步進馬達有沒有掉步，而一旦發生掉步，後面的座標計算就會完全錯誤，這個掉步所造成的誤差就會累積在之後的計算之中，而造成更大的問題。

因此爲了避免這種問題，在一些需要精密位置控制的應用中，我們會爲步進馬達加上類似無刷馬達控制的角度感測器，用來監控步進馬達的位置，並確保它每一步有走到該走的位置上。

 ![](https://makerpro.cc/wp-content/uploads/2024/03/Screenshot-2024-03-25-220050.png)

（圖片來源：Bird 提供）

這是一個典型的閉環路步進馬達控制方式。在馬達的輸出軸上，黏一顆小磁鐵，而在磁鐵附近有一塊小電路板，上面有一顆霍爾角度感測器，用來感應這個磁鐵旋轉的角度，這個角度的訊號會被當成回授訊號送往馬達驅動控制電路。當控制電路發現馬達沒有轉動到預期的角度時，就會繼續驅動馬達旋轉，直到馬達轉到預期的角度爲止。

一般常用於馬達控制的霍爾角度感測器如 Allegro 的 A1333 或 A1337，都有 12 bit 甚至更高的解析度；以 12 bit 來說，一圈就可以被細分成 2^12 = 4096 步，也就是一步是 360 / 4096 = 0.08789 度，對於一般的步進馬達控制來說已經綽綽有餘。

### **小結**

這一回是步進馬達的原理與驅動系列的最終回。我們花了十篇的篇幅介紹了步進馬達的分類、內部線圈與磁鐵的結構、驅動的方式與原理，也介紹了用來變換電流方向的 H-bridge 驅動電路、專用的 H-bridge 驅動 IC，以及專門用來控制及驅動步進馬達的 IC： Allegro A4988。

相較於伺服馬達，步進馬達由於扭力大、可以開環路控制，在很多機構運動的設計如 3D 列印機、雷射雕刻或切割機乃至於寫字或切割的機器人中扮演者不可或缺的角色，希望這一系列文章能讓讀者們更認識步進馬達，在設計自己的 maker 專案時，也能更善用步進馬達的特性。

（責任編輯：賴佩萱）
