步進電動機(stepping motor)把電脈沖信號變換成角位移以控制轉(zhuǎn)子轉(zhuǎn)動的微特電機。在自動控制裝置中作為執(zhí)行元件。每輸入一個脈沖信號,步進電動機前進一步,故又稱脈沖電動機。步進電動機多用于數(shù)字式計算機的外部設(shè)備,以及打印機、繪圖機和磁盤等裝置。步進電動機的驅(qū)動電源由變頻脈沖信號源、脈沖分配器及脈沖放大器組成,由此驅(qū)動電源向電機繞組提供脈沖電流。
步進電動機的運行性能決定于電機與驅(qū)動電源間的良好配合。步進電機的優(yōu)點是沒有累積誤差,結(jié)構(gòu)簡單,使用維修方便,制造成本低,步進電動機帶動負載慣量的能力大,適用于中小型機床和速度精度要求不高的地方,缺點是效率較低,發(fā)熱大,有時會“失步”。步進電動機分為機電式、磁電式及直線式三種基本類型。
機電式步進電動機機電式步進電動機由鐵心、線圈、齒輪機構(gòu)等組成。螺線管線圈通電時將產(chǎn)生磁力,推動其鐵心心子運動,通過齒輪機構(gòu)使輸出軸轉(zhuǎn)動一角度,通過抗旋轉(zhuǎn)齒輪使輸出轉(zhuǎn)軸保持在新的工作位置;線圈再通電,轉(zhuǎn)軸又轉(zhuǎn)動一角度,依次進行步進運動。
磁電式步進電動機磁電式步進電動機 其結(jié)構(gòu)簡單, 可靠性高, 價格低廉, 應(yīng)用廣泛。主要有永磁式、 磁阻式和混合式。
(1)永磁式步進電動機。
永磁式步進電動機的基本原理其轉(zhuǎn)子有永磁體的磁極,在氣隙中產(chǎn)生極性交替磁場,定子由四相繞組組成(見圖)。當A相繞組通電時,轉(zhuǎn)子將轉(zhuǎn)向該相繞組所確定的磁場方向。當A相斷電、B相繞組被通電勵磁時,就產(chǎn)生一個新的磁場方向,這時,轉(zhuǎn)子就轉(zhuǎn)動一角度而位于新的磁場方向上,被勵磁相的順序決定了轉(zhuǎn)子轉(zhuǎn)動方向。
若定子勵磁的變化太快,轉(zhuǎn)子將不能和定子磁場方向的變化保持一致,轉(zhuǎn)子即失步。起動頻率和運行頻率較低,是永磁式步進電動機的一個缺點。但永磁式步進電動機消耗功率較小,效率較高。20世紀80年代初,出現(xiàn)了轉(zhuǎn)子是盤式的永磁盤式步進電動機,使步距角及工作頻率達到磁阻式步進電動機的水平。
(2)磁阻式步進電動機。
其定、轉(zhuǎn)子鐵芯的內(nèi)外表面上設(shè)有按一定規(guī)律分布的相近齒槽,利用定、轉(zhuǎn)子鐵芯齒槽相對位置變化引起磁路磁阻的變化,從而產(chǎn)生轉(zhuǎn)矩。其轉(zhuǎn)子鐵芯由硅鋼片或軟磁材料做成,當定子某相被勵磁時,轉(zhuǎn)子將轉(zhuǎn)到使磁路磁阻最小的位置。當另一相被勵磁,轉(zhuǎn)子轉(zhuǎn)到另一位置,使磁路磁阻為最小時,電動機就停止轉(zhuǎn)動。這時,轉(zhuǎn)子轉(zhuǎn)過一個步距角θb,即式中N為轉(zhuǎn)子轉(zhuǎn)過一個齒距的運行拍數(shù);ZR為轉(zhuǎn)子齒數(shù)。磁阻式步進電動機結(jié)構(gòu)形式較多。定子鐵芯有單段式、多段式;磁路有徑向、軸向;繞組相數(shù)有三相、四相、五相。磁阻式步進電動機步距角可做到1°~15°,甚至更小,精度容易保證,起動與運行頻率較高,但功耗較大,效率較低。
(3)混合式步進電動機。
它的定、轉(zhuǎn)子鐵芯結(jié)構(gòu)與磁阻式步進電動機相似。轉(zhuǎn)子有永磁體在氣隙中產(chǎn)生單極性磁場,此磁場還被轉(zhuǎn)子上軟磁材料的齒槽調(diào)制?;旌鲜讲竭M電動機兼有永磁式步進電動機與磁阻式步進電動機兩者的優(yōu)點,電動機步距角小,精度高,工作頻率高,且功耗小,效率高。
步進電機正反轉(zhuǎn)控制方式:
1、步進電機有四相繞組A、B、C、D,當一繞組通電時在電動機內(nèi)部形成N-S極,產(chǎn)生磁場,當通電的相發(fā)生變化,磁場發(fā)生旋轉(zhuǎn),在磁場的作用下,轉(zhuǎn)子將轉(zhuǎn)動,若步進電機按雙四拍的方式來工作。
/2、在A、B、C、D四相繞組上輸入脈沖的順序為AB→BC→CD→DA→AB,步進電機沿順時針方向轉(zhuǎn)動,即正轉(zhuǎn);若在A、B、C、D四相繞組上依次輸入脈沖AB→DA→CD→BC→AB;步進電機將沿逆時針方向旋轉(zhuǎn),即反轉(zhuǎn)。電機內(nèi)部數(shù)據(jù)參數(shù),初始的即可,不用調(diào)改。
整體程序的結(jié)果:
(1)先正轉(zhuǎn)一圈,等待一秒后再反轉(zhuǎn)一圈。這一過程可以自己修改程序,把它去掉,即整體main函數(shù)while循環(huán)的前面那部分,只會執(zhí)行一次。
while(1)
{
(2)按下按鈕1,整個電機開始正轉(zhuǎn)N圈,當檢測按鈕一直按下時,整個電機就一直正轉(zhuǎn)下去。當檢測到其他按鈕按下時,立即跳轉(zhuǎn)到其他按鈕對應(yīng)的程序。
(3)按下按鈕2,和按鈕1相反。
(4)按鈕3,使整個電機停止工作。
}
上面2,3,4部分是一直在循環(huán)掃描檢測的。
#include
#include
unsigned char code z[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03//315,270,225......360(0)
};//八拍
unsigned char code f[]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03//45,90,145......360(0)
};
sbit K1 = P3^0;//定義正轉(zhuǎn)按鈕
sbit K2 = P3^1;//定義反轉(zhuǎn)按鈕
sbit K3 = P3^2;//定義停止按鈕
void zz(unsigned char n);
void fz(unsigned char n);
void delay();
void step();
void main()
{
unsigned char N = 1;//由于設(shè)定好了轉(zhuǎn)一圈的數(shù)據(jù),所以N在此設(shè)定為轉(zhuǎn)多少圈。
TMOD=0X10;
TL1=0XF0;
TH1=0XD8;
EA=0;
ET1=0;//這里沒有使用定時器中斷,這里只是使用定時器的定時功能。
zz(N);
delay();
fz(N);
while(1)
{
if(K1 == 0)
{
while(1)
{
P0 = 0xfe;
zz(N);
if(K3 == 0||K2==0) break;
}
}
else if(K2 == 0)
{
while(1)
{
P0 = 0xfd;
fz(N);
if(K3 == 0||K1==0) break;
}
}
else
{
P0 = 0xfb;
P1 = 0x03;
}
}
}
void zz(unsigned char n)//正轉(zhuǎn)
{
unsigned char i,j;
for(i=0;i
{
for(j=0;j<8;j++)//整個for循環(huán),正轉(zhuǎn)一個步距角,因為四相八拍,所以是半個步距角,即半步。
{
if(K3 == 0) break;
P1 = z[j];
step();
}
}
}
void fz(unsigned char n)//反轉(zhuǎn)
{
unsigned char i,j;
for(i=0;i
{
for(j=0;j<8;j++)
{
if(K3 == 0) break;
P1 = f[j];
step();
}
}
}
void delay()//定義1s
{
unsigned char i,j,k;
_nop_();
i=8;
j=154;
k=122;
do
{
do
{
while(--k);
}while(--j);
}while(--i);
}
void step()//定時器計時10ms
{
TF1=0;
TR1=1;
while(TF1==0);
TR1=0;
TL1=0XF0;
TH1=0XD8;
}
1.程序中用到的延時,這個根據(jù)自己的習(xí)慣,可以寫相對應(yīng)的函數(shù)延時,但是由于電機轉(zhuǎn)的過程中的延時,就我上文中for循環(huán)里面的定時10ms,這個是根據(jù)實際情況來調(diào)的,理論上來說,使用proteus仿真的電機延時最低是1ms,如果低于1ms實驗起來,不會看到自己編寫代碼的理想結(jié)果。
2.步距角的不同,那么想要電機轉(zhuǎn)一圈,執(zhí)行zz或者fz函數(shù)的參數(shù)就要有所不同。以我上面程序為例。
八拍轉(zhuǎn)一個循環(huán),轉(zhuǎn)過360度,步距角是90°。
那么步距角是45°時,要想轉(zhuǎn)過360°,那么就需要16拍。
這里需要各位自己去修改程序去實驗,這里只提供一個提醒。如果超過256拍的話,那么unsigned char是不夠你玩的,需要unsigned int。
步進電機驅(qū)動器是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的接下來,詳細為你說下步進驅(qū)動器怎么控制方向 步進驅(qū)動器怎么設(shè)置電機正反轉(zhuǎn)。
脈沖控制,因為脈沖有數(shù)量,利于精確控制。所以步進電機方向是靠脈沖控制的,
怎么控制:一般高電平控制一個方向,低電平控制另一個方向。
也有用兩路脈沖控制的。就是一路脈沖的高電平控制一個方向,另一路脈沖的高電平控制另一個方向。
只要控制在四相繞組上輸入脈沖的順序,就可以控制電機的正轉(zhuǎn)/反轉(zhuǎn)。(控制延時就能控制轉(zhuǎn)速。)
方向電平信號DIR用于控制步進電機的旋轉(zhuǎn)方向。當該端高時,電動機沿一個方向旋轉(zhuǎn),當該端低時,電動機沿另一方向旋轉(zhuǎn)。電機換向必須在電機停止后執(zhí)行,并且換向信號必須在前一個方向的最后一個CP脈沖之后和下一個方向的第一個CP脈沖之前發(fā)送。
如果控制器(主機)發(fā)送雙脈沖(例如正脈沖和負脈沖)或脈沖信號的幅度不匹配,則需要使用信號模塊將其轉(zhuǎn)換為5v單脈沖(脈沖) 。中文加方向))。
1.輸入為單個脈沖
信號模塊的DIP開關(guān)應(yīng)設(shè)置在“單脈沖”位置。如果有脈沖輸出,則電動機將旋轉(zhuǎn)。改變方向信號的高電平和低電平可以改變旋轉(zhuǎn)方向。有關(guān)特定時序,請參閱信號模塊手冊。
2,輸入為雙脈沖
信號模塊的DIP開關(guān)應(yīng)置于?雙麥:中間?位置。發(fā)送正脈沖會使電動機正向旋轉(zhuǎn),而發(fā)送負脈沖會使電動機反向。正脈沖和負脈沖不能同時給出,具體時序請參考信號模塊手冊。
步進電機的運行方向與要求相反。我應(yīng)該如何調(diào)整? Shanshe Motor的技術(shù)工程師提出了兩種實現(xiàn)方法:
一種方法是更改控制系統(tǒng)的方向信號。
另一種方法是通過調(diào)整步進電機的接線來改變方向。具體方法如下:
對于兩相電機,只需將其中一根電機線切換到A +和A交換等步進電機驅(qū)動器即可。
對于三相電動機,不能更換其中一根電動機電線,但必須依次更換兩相,例如交換A +和B +。
A-和B-互換。
原文標題:如何實現(xiàn)步進電機的正反轉(zhuǎn)?步進電機正反轉(zhuǎn)程序詳解
文章出處:【微信公眾號:電氣控制技術(shù)知識】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
變頻器
+關(guān)注
關(guān)注
251文章
6574瀏覽量
145403
發(fā)布評論請先 登錄
相關(guān)推薦
評論