8051 微控制器與步進電機的介面


在本節中,我們將瞭解如何將步進電機連線到英特爾8051 微控制器。在討論介面技術之前,我們將瞭解什麼是步進電機以及它們的工作原理。

步進電機

步進電機用於將電脈衝轉換為機械運動。在某些磁碟驅動器、點陣印表機和其他一些不同的地方,都使用了步進電機。使用步進電機的主要優勢在於位置控制。步進電機通常具有永磁轉子,並被定子包圍。

普通電機軸可以自由旋轉,但步進電機軸以固定的可重複增量旋轉。

步進電機的一些引數:

  • 步進角 - 步進角是指當一個脈衝作為定子的輸入時,轉子旋轉的角度。此引數用於確定步進電機的位置。

  • 每轉步數 - 這是完整旋轉所需的步進角數。因此,公式為 360° / 步進角。

  • 每秒步數 - 此引數用於測量每秒覆蓋的步數。

  • RPM - RPM 是每分鐘轉數。它測量旋轉頻率。透過此引數,我們可以測量一分鐘內的旋轉次數。

RPM、每轉步數和每秒步數之間的關係如下所示:

Steps per Second = rpm x steps per revolution / 60

8051 微控制器與步進電機的介面

我們使用 8051 的 P0 埠連線步進電機。這裡使用了 ULN2003。這基本上是一個高電壓、大電流達林頓電晶體陣列。每個 ULN2003 都有七個 NPN 達林頓對。它可以提供高電壓輸出,並帶有共陰極鉗位二極體,用於切換感應負載。

單極性步進電機以三種模式工作。

  • 波驅動模式 - 在此模式下,一次只激勵一個線圈。因此,所有四個線圈依次激勵。此模式產生的轉矩小於全步驅動模式。

下表顯示了不同繞組中輸入狀態的順序。

步數
繞組 A
繞組 B
繞組 C
繞組 D
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
  • 全步驅動模式 - 在此模式下,同時激勵兩個線圈。此模式產生更大的轉矩。這裡的功耗也較高。

下表顯示了不同繞組中輸入狀態的順序。

步數
繞組 A
繞組 B
繞組 C
繞組 D
1
1
1
0
0
2
0
1
1
0
3
0
0
1
1
4
1
0
0
1


  • 半步驅動模式 - 在此模式下,交替激勵一個和兩個線圈。首先激勵一個線圈,然後激勵兩個線圈。這基本上是波和全步驅動模式的組合。它增加了電機的旋轉角度。

下表顯示了不同繞組中輸入狀態的順序。

步數
繞組 A
繞組 B
繞組 C
繞組 D
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1


電路圖如下:我們使用的是全步驅動模式。

示例

#include<reg51.h>
sbit LED_pin = P2^0; //set the LED pin as P2.0
void delay(int ms){
   unsigned int i, j;
   for(i = 0; i<ms; i++){ // Outer for loop for given milliseconds value
      for(j = 0; j< 1275; j++){
         //execute in each milliseconds;
       }
   }
}
void main(){
   int rot_angle[] = {0x0C,0x06,0x03,0x09};
   int i;
   while(1){
      //infinite loop for LED blinking
      for(i = 0; i<4; i++){
         P0 = rot_angle[i];
         delay(100);
      }
   }
}

更新於:2023-10-31

68K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告