步進電機使用介紹

2021-02-19 電子創客派

hi,大家好啊,好久沒更新了,有人擔心e哥會不會不運營公眾號了。e哥的回答是:不會的。e哥以前是個程式設計師,現在e哥打算找份電子設計方面的工作,所以做了些調整,希望以後能給大家分享更多更專業的電子設計知識。

七月份,e哥和QQ群(143867886)內的小夥伴談論了平衡小車的設計,本來計劃在八月份設計出一臺平衡小車的,現在看來得延期了。製作平衡小車牽涉的內容比較多,e哥打算把這些內容先拆開來發表,然後再整合出一臺平衡小車。

平衡小車單片機處理可以用Arduino或Stm32,驅動電機可以用直流電機或步進電機。直流電機使用較為簡單,電機的轉速與電壓(電流)大小有關,電壓(電流)越大轉速越快,也可以通過PWM控制它的轉速。步進電機使用較為複雜,相比於直流電機步進電機具有瞬間啟動和急速停止的優越特性。接下來就著重介紹一下步進電機的使用方法。

步進電機是將電脈衝信號轉變為角位移或線位移的開環控制電機,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

步進電機分類和型號很多下面將於28BYJ-48型號的步進電機來講解步進電機的組成結構、工作原理、驅動電路和程序實現。如果需要了解其他類別的步進電機可查看文章最下方的「閱讀原文」。

28BYJ-48型步進電機

步進電機組成結構

一個典型的步進電機內部由轉子、定子和繞組組成。上圖中繞組線圈繞在定子上形成了A、B、C三相勵磁,該步進電機被稱為三相步進電機。

簡化的步進電機:

上圖步進電機定子有三相、轉子齒數為6個。

接下來讓我們來逐步拆解28BYJ-48步進電機看看其內部的結構。

拆開的第一步我們可以看到四個變速齒輪。28BYJ-48是減速步進電機,利用四個齒輪減緩步進電機的轉速,減速比例有1:64、1:32、1:16,本文使用的是1:64,也就是步進電機內部旋轉了64圈,外部軸只旋轉1圈。

繼續往下拆就可以看到定子和轉子。定子由四排犬牙狀的鐵片交替排列組成,這相對於A、B、C、D四相勵磁。轉子從表面上看是一個圓筒形永磁體,當你用鐵塊測試就能發現它其實由8部分組成,這相對於轉子擁有的齒數為8。

再往下拆解就能找到繞組了。繞組共有四組線圈分別給A、B、C、D四相勵磁提供磁力。

步進電機工作原理

當給定子上的繞組線圈通電時,該線圈對應的相勵磁就會產生磁力吸引轉子的齒牙並與之吻合,從而帶動轉子旋轉。上圖中當A相勵磁通電時會使A上齒牙和轉子上的齒牙吻合,同理當B相勵磁通電時會使B上齒牙和轉子上的齒牙吻合,由此轉子就轉動了3°,以此類推C通電再轉動3°,我們把轉的3°稱為「步距角」。

由上面分析可知如果想要步進電機旋轉就需要給定子繞組有序通電。由於通電時間可以很短,所以通電過程可以理解為是發送一個正脈衝,如下圖所示。

上圖的通電方式可以稱為:單相輪流通電(A→B→C→A),如果需要反轉通電順序可以改為A→C→B→A。除了單相輪流通電方式,還有雙相輪流通電(AB→BC→CA→AB),單雙相輪流通電(A→AB→B→BC→C→CA→A)。單相輪流通電和雙相輪流通電的步距角相等,單雙相輪流通電的步距角是單相輪流通電的一半。

28BYJ-48型步進電機(命名解釋:28—電機外觀直徑28mm,B—步進電機,Y—轉子使用永磁體,J—減速電機,4—四相,8—八拍)是四相八拍減速步進電機。它的減速比例有1/64、1/32、1/16三種,本文使用的是1/64,工作電壓有5v、6v、12v、24v四種,本文使用的是5v,在八拍(A→AB→B→BC→C→CD→D→DA→A)方式下步距角為5.625°,減速後為0.087890625°,那麼在四拍(A→B→C→D→A)方式下步距角為11.25°,減速後為0.17578125°。

28BYJ-48型步進電機外部軸旋轉一周,在八拍方式下A、B、C、D相分別需要1024個脈衝,總共就需要4096個脈衝;在四拍方式下A、B、C、D相分別需要512個脈衝,總共就需要2048個脈衝。

步進電機的步距角是可以通過定子的相數m、轉子的齒數z以及通電方式c計算出來的。當步進電機為單相輪流通電或雙相輪流通電時c=1,當步進電機為單雙相輪流通電時c=2。那麼步距角Q就可以用下列等式計算了。

Q=360/(m*z*c)

28BYJ-48型步進電機m=4,z=8,當在八拍方式下c=2,那麼Q=360/(4*8*2)=5.625。

由Q=360/(m*z*c)公式可知,步進電機的相數越多步距角越小,定子齒數越多步距角越小。

步進電機驅動電路

由於驅動步進電機旋轉需要比較大的電流,而單片機引腳的驅動能力非常有限,所以就需要加驅動電路。可以使用ULN2003晶片來驅動步進電機,也可以用三極體驅動。

ULN003驅動電路:


三極體驅動電路:

當然也可以直接購買驅動模塊。

ULN2003驅動模塊

步進電機程序實現

單片機控制步進電機轉動時需要單片機引腳有序的發送脈衝。28BYJ-48型步進電機有四相,需要四個引腳控制。接下來將分別編寫51和STM32單片機控制28BYJ-48型步進電機的C程序代碼。

51單片機:

使用STC15F104E單片機,控制步進電機引腳為P3.2、P3.3、P3.4、P3.5。

void stepperMotor(bit flag, uint16 times, uint8 speed)

{

uint16 T = 600000 / (2048 * speed);

static uint8 step;

P32 = P33 = P34 = P35 = 0;

while(times--)

{

if(flag == 0)

{

//A->B->C->D->A

switch(step)

{

case 0:

P35 = 0;

P32 = 1;

break;

case 1:

P32 = 0;

P33 = 1;

break;

case 2:

P33 = 0;

P34 = 1;

break;

case 3:

P34 = 0;

P35 = 1;

break;

}

}

else

{

//A->D->C->B->A

switch(step)

{

case 0:

P33 = 0;

P32 = 1;

break;

case 1:

P32 = 0;

P35 = 1;

break;

case 2:

P35 = 0;

P34 = 1;

break;

case 3:

P34 = 0;

P33 = 1;

break;

}

}

step = ++step >=4 ? 0 : step;

delay_100us(T);

}

P32 = P33 = P34 = P35 = 0;

}

STM32單片機:

使用STM32F103C8T6單片機,控制步進電機引腳為PA0、PA1、PA2、PA3。

void stepperMotor(uint8_t flag, uint16_t times, uint8_t speed)

{

uint16_t T = 600000 / (2048 * speed);

static uint8_t step;

GPIO_ResetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);

while(times--)

{

if(flag == 0)

{

//A->B->C->D->A

switch(step)

{

case 0:

GPIO_ResetBits(GPIOA, GPIO_Pin_3);

GPIO_SetBits(GPIOA, GPIO_Pin_0);

break;

case 1:

GPIO_ResetBits(GPIOA, GPIO_Pin_0);

GPIO_SetBits(GPIOA, GPIO_Pin_1);

break;

case 2:

GPIO_ResetBits(GPIOA, GPIO_Pin_1);

GPIO_SetBits(GPIOA, GPIO_Pin_2);

break;

case 3:

GPIO_ResetBits(GPIOA, GPIO_Pin_2);

GPIO_SetBits(GPIOA, GPIO_Pin_3);

break;

}

}

else

{

//A->D->C->B->A

switch(step)

{

case 0:

GPIO_ResetBits(GPIOA, GPIO_Pin_1);

GPIO_SetBits(GPIOA, GPIO_Pin_0);

break;

case 1:

GPIO_ResetBits(GPIOA, GPIO_Pin_0);

GPIO_SetBits(GPIOA, GPIO_Pin_3);

break;

case 2:

GPIO_ResetBits(GPIOA, GPIO_Pin_3);

GPIO_SetBits(GPIOA, GPIO_Pin_2);

break;

case 3:

GPIO_ResetBits(GPIOA, GPIO_Pin_2);

GPIO_SetBits(GPIOA, GPIO_Pin_1);

break;

}

}

step = ++step >= 4 ? 0 : step;

delay_100us(T);

}

GPIO_ResetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);

}

程序採用單拍輪流通電方式(A->B->C->D->A或A->D->C->B->A),步距角為11.25°,減速後為0.17578125°。其中輸入參數flag:轉動方向,0-順時針(A->B->C->D->A)、1-逆時針(A->D->C->B->A),times:脈衝個數,speed:轉動速度,1-每分鐘轉1圈,取值範圍1-15。

程序中靜態變量step代表步進電機相勵磁,其中0對應A,1對應B,2對應C,3對應D。設置step的目的是為了讓控制步進電機轉動的脈衝能在各個相勵磁中順序執行,保證轉子的轉動方向一致。

由於步距角為11.25°,減速後為0.17578125°,所以旋轉一圈需要2048個脈衝,也就是每相需要512個脈衝。步進電機對脈衝寬度是有一定要求,脈衝持續時間不能太短,28BYJ-48型步進電機脈衝持續時間最好大於1ms。

在之前公眾號發表過直流電機和舵機的文章,今天又寫了篇步進電機的文章,看上去它們還有些相似的地方。下面來簡單敘述下三者的特點:直流電機可以控制轉速,舵機可以控制旋轉角度,步進電機既可以控制轉速也可以控制旋轉角度。舵機旋轉角度有範圍(0°~180°),步進電機沒有;舵機有伺服電位每次的旋轉不受上一次旋轉情況影響,步進電機旋轉是步距角累加過程每次的旋轉會受上一次旋轉情況影響。比方說當舵機受外力影響導致其未能旋轉到正確角度,當外力消失後,舵機的下一次旋轉操作不會因為上一次旋轉失敗而不能到達正確角度。而步進電機如果受到外力阻擾轉動,那麼接下來的旋轉操作都會受到影響而不能旋轉到正確角度,此時就需要重新矯正了。

以上程序只列舉了步進電機的控制函數部分,完整的51、STM32單片機測試程序可在QQ群(143867886)群文件內下載。

舵機使用介紹

相關焦點

  • 製作步進電機控制模塊
    製作時長:1-2天製作成本:<10元難度係數:一般前一期發表了《步進電機使用介紹》,介紹步進電機的組成結構、工作原理和驅動電路。通過那篇文章,我們知道要控制步進電機旋轉就需要時刻給步進電機發送脈衝。這帶來了些問題,比如需要步進電機一直旋轉,單片機就只能一直給它發送脈衝了,就很難去做其他事情了。還有步進電機相位越多需要控制引腳也就越多,如果步進電機數量多了單片機引腳根本不夠用,那麼有沒有解決方法呢?為了解決步進電機脈衝控制和引腳使用問題,我設計了一個簡單的步進電機控制模塊,使用兩個引腳就能控制步進電機轉動了。
  • 步進電機細分講解
    沒有細分狀態的話,控制系統(可以說單片機)每發一個步進的脈衝信號,步進電機就會按照整步(步距角)旋轉一個特定的角度。步進電機的datasheet都會給出一個步距角,我們最常見的步進電機的步距角是1.8°。我們通過步進電機驅動器(步進電機驅動板)設置細分狀態,步進電機將會按照細分的步距角旋轉位移角度,從而實現更精密的定位。
  • 單片機控制步進電機設計及失步原因分析,51單片機驅動步進電機的方法
    這被認為是最初的步進電機。二十世紀初,在電話自動交換機中廣泛使用了步進電機。由於西方資本主義列強爭奪殖民地,步進電機在缺乏交流電源的船舶和飛機等獨立系統中得到了廣泛的使用。二十世紀五十年代後期電晶體的發明也逐漸應用在步進電機上,對於數位化的控制變得更為容易。到了八十年代後,由於廉價的微型計算機以多功能的姿態出現,步進電機的控制方式更加靈活多樣。
  • 回收電機小武:普通電機、減速電機、步進電機、伺服電機的區別
    減速電機減速電機就是普通電機加上了減速箱,這樣便降低了轉速,增加了扭力,使得普通電機有更廣泛的使用空間。步進電機步進電機是將電脈衝信號轉變為角位移或線位移的開環控制元步進電機件。在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,當步進驅動器接收到一個脈衝信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為「步距角」,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
  • 單相步進電機_文盛達科技
    單相步進電機,文盛達科技,歡迎新老客戶來電諮詢。單相步進電機, 步進電機的旋轉同時與相數、分配數、轉子齒輪數有關。現在比較常用的步進電機包括反應式步進電機、永磁式步進電機、混合式步進電機和單相式步進電機等。其中反應式步進電機的轉子磁路由軟磁材料製成,定子上有多相勵磁繞組,利用磁導的變化產生轉矩。
  • 5分鐘實現單片機步進電機控制設計
    為保護單片機控制系統硬體電路,在單片機和步進電機之間增加過流保護電路。圖l為步進電機控制系統框圖。MSP430FG4618單片機內部的8 KB RAM和116 KB  Flash滿足控制系統的存儲要求,P1和P2埠在步進電機工作過程中根據按鍵狀態判斷是否跳入中斷服務程序來改變步進電機的工作狀態,USART模塊實現單片機和PC上位機之間的通信,實現PC機對步進電機控制。
  • 【分享】步進電機失步原因和解決方法
    一般的電機都是三相六拍、五相十拍這兩種。大家是否注意到了,三相六的控制器有三隻LED,五相十拍的有五隻LED。 三相:電機三組繞阻,也就三條線。六拍:三隻LED,循環了兩次才回到起始狀態。 三相的的三隻LED燈每閃動一隻,步進機也就步進了0.1絲,輪換著閃動兩圈也就是0.6絲。一般電機失步都是缺少了其中一相或者兩相,也就是說有一隻的線路壞了(至於是電機還是控制器壞就要查了)。
  • 步進電機S型曲線加減速算法與實現
    步進電機是將電脈衝信號轉變為角位移或線位移的開環控制電機,是現代數字程序控制系統中的主要執行元件,應用極為廣泛。。在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數,而不受負載變化的影響,當步進驅動器接收到一個脈衝信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為「步距角」,它的旋轉是以固定的角度一步一步運行的。
  • 步進電機控制之8255A
    電路連接(如圖一):元器件(80c51晶片,8255A晶片,74ls373鎖存晶片,l298驅動晶片,三相六線步進電機,按鈕若干,電源)​​本文引用地址
  • 51單片機ULN2003驅動步進電機的典型應用電路圖解
    51單片機ULN2003驅動步進電機的典型應用電路圖解  51單片機ULN2003驅動步進電機-_典型應用電路圖。該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。採用51驅動ULN2003的方法進行驅動。
  • vivo NEX升降結構解析:5mm微型步進電機了解一下 | 凰家評測
    因為用戶使用正面拍攝的頻次以及時長並不是特別高。如果能尋找到一種方式,將攝像頭隱藏起來,只在需要的時候「露出」,一定是更為「經濟」的方法。於是vivo工程師採用了微型步進馬達實現前置鏡頭升降的解決方案。
  • UMot直線電機,您身邊的定製電機專家,更高性價比,360度電機解決方案
    作為IVD儀器的核心配件的步進電機,特別是進口、合資品牌的絲槓電機出現了比較大的原材料問題。生產周期加長,價格上漲。正是在這樣的背景下,優摩特作為優秀的國產步進電機品牌,我們憑藉敏銳的洞察力,及時的調整了公司銷售渠道和生產結構,很快填補了進口及合資品牌行程的市場缺口。得到了一批行業用戶的認可和選擇,保證了IVD用戶的生產和及時出貨。
  • 三相六線電機接線電路圖
    三相六線電機接線電路圖 工程師譚軍 發表於 2018-09-21 08:51:31   本文主要是關於三相六線電機的相關介紹,並著重對三相六線電機接線電路進行了詳盡的闡述。
  • 固定電機線圈用什麼膠水
    電機在組裝過程中需要應用很多膠粘劑,進行結構粘接或密封,今天我們介紹一下固定電機線圈的膠水。線圈固定膠水應用於電機轉子線圈的加固,換向器頸部鉤線包封,空心杯電機線圈的粘接補強,無刷電機繞線引線尾端固定保護絕緣等,下面我們介紹幾款常用於電機線圈的膠水解決方案:一:E392雙組份環氧結構膠,適用於電機轉子,無刷電機,步進電機,塑料骨架線圈,常溫或加低溫快速固化的線圈固定。
  • 2020年度中國無刷電機行業榜單
    公司員工總數200餘人,其中技術開發人員佔比20%以上,年生產各類電機和驅動器100萬臺。我公司的主要產品有步進電機、步進電機驅動器、無刷電機、無刷電機驅動器、伺服電機、伺服電機驅動器、控制卡以及電源和同步輪等配套產品,公司通過20年的研發推出新一代步進電機,憑藉高效率技術,使新一代步進電機力矩提高30%,溫升降低20%,並推出了新一代驅動器,大大降低了電機噪音和發熱。
  • 雷賽BAC332E運動控制器控制臺達B3伺服電機的使用入門介紹(精)
    系統結構3BAC332E運動控制器可使用BASIC語言編程,獨立運行(不需要PC機);也可以讓BAC332E運動控制器作下位機、PC機作上位機並採用高級語言(VB、VC、C#、Delphi在 BAC332E 構建的系統中,控制器 BAC332E 是主站,其他節點如總線伺服/步進系統、總線 IO 模塊等都是從站。主站將控制數據發送到各個節點,同時 接收各個節點反饋回來的數據,從站接收主站發送的數據並執行響應的動作,同 時將當前數據發送回主站。
  • 基於迴轉步進的堆料機全自動堆料研究
    使用鬥輪取料機或鬥輪堆取料機將堆場的散料取到地面帶式輸送機上,再用裝船機裝載到散貨船,稱為出場工序。使用多臺鬥輪堆取料機取不同物料,再通過帶式輸送機運輸到堆料機重新堆放稱為混礦工序。使用1 臺鬥輪堆取料機取料,再通過帶式輸送機輸送到堆料機堆料稱為轉場工序。此外,不通過堆、取作業,將物料從卸船機卸料,經地面帶式輸送機直接輸送到裝船機裝船稱為直裝工序。
  • 開平蒼城馬達電機回收多少錢一個
    常用於通信、汽車、電機、建築等行業。輻照交聯聚烯烴電線電纜主要用於耐熱建築線、汽車線、航空導線、機車線電線和電機電器引接線等。左滾輪步進電機帶動上、下左滾輪將夾持的被加工左右移動;扭輪步進電機帶動上、下左滾輪向相反方向前後運動,實現扭功能。電動機過載運行,主要原因是由於拖動的負荷過大,電壓過低,或被帶動的機械卡滯等造成的。
  • 陝西abb伺服電機_旺火科技真誠相待
    、工作中伺服電機噪聲太大,故障原因多為電源電壓太低,短路環損壞或是電磁鐵極面上有油垢、灰塵發生卡澀,使接觸不良。陝西abb伺服電機, 和利時電機的TS系列交流伺服系統,為某單晶矽生長爐生產企業提供了定製化設計方案,實現了軟軸提拉型單晶矽生長爐提拉過程的精確控制。由和利時電機自主研發的低壓伺服電機及驅動系列產品,為智能醫療服務機器人提供了澎湃的源動力。
  • 可攜式數控切割機使用方法之主機在Y軸上的移動方式
    等離子切割機在可攜式數控切割機上,其動力源是步進電機,也叫永磁電機,造價成本比較低,靈活性較強。那麼可攜式數控切割機主機在Y軸的移動方式有兩種,一是人工推拉移動,二是步進電機驅動移動。可攜式等離子切割機由於永磁電機的緣故,當主機在Y軸上人為拉動的時候,齒輪會與軌道產生摩擦,把動力傳輸回步進電機中,從而會導致電機摩擦生電,因此會影響設備使用壽命,所以在可攜式數控切割機的主機上,一般有一個按鍵開關,類似於手動汽車的離合器