工程科技51單片機控制四相步進電機畢業設計資料_第1頁
工程科技51單片機控制四相步進電機畢業設計資料_第2頁
工程科技51單片機控制四相步進電機畢業設計資料_第3頁
工程科技51單片機控制四相步進電機畢業設計資料_第4頁
工程科技51單片機控制四相步進電機畢業設計資料_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、51單片機控制四相步進電機接觸單片機快兩年了,不過只是非常業余的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的單片機控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。今天從淘寶網買了一個EPSON的UMX-1型步進電機,此步進電機為雙極性四相,接線共有六根,外形如下圖所示:拿到步進電機,根據以前看書對四相步進電機的了解,我對它進行了初步的測試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外四根線(紅、蘭、白、橙)依次接觸,發現每接觸一下,步進電機便轉動一個角度,來回五次,電機剛好轉一圈,說明此步

2、進電機的步進角度為360/(4×5)18度。地線與四線接觸的順序相反,電機的轉向也相反。如果用單片機來控制此步進電機,則只需分別依次給四線一定時間的脈沖電流,電機便可連續轉動起來。通過改變脈沖電流的時間間隔,就可以實現對轉速的控制;通過改變給四線脈沖電流的順序,則可實現對轉向的控制。所以,設計了如下電路圖:制作的實物圖如下:C51程序代碼為:代碼一#include <AT89X51.h> static unsigned int count;static unsigned int endcount;void delay();void main(void)   co

3、unt = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0; EA = 1;              /允許CPU中斷   TMOD = 0x11;  /設定時器0和1為16位模式1   ET0 = 1;             /定

4、時器0中斷允許TH0 = 0xFC;   TL0 = 0x18;      /設定時每隔1ms中斷一次    TR0 = 1;           /開始計數startrun:    P1_3 = 0;  P1_0 = 1;  delay();  P1_0 = 0;  P1_1 = 1;  delay();  P1_1 = 0; 

5、; P1_2 = 1;  delay();  P1_2 = 0;  P1_3 = 1;  delay();  goto startrun; /定時器0中斷處理void timeint(void) interrupt 1   TH0=0xFC;   TL0=0x18; /設定時每隔1ms中斷一次  count+;void delay()  endcount=2;  count=0;  dowhile(count<endcount);將上面的程序編譯,用ISP下載線下載至單片機運行,

6、步進電機便轉動起來了,初步告捷!不過,上面的程序還只是實現了步進電機的初步控制,速度和方向的控制還不夠靈活,另外,由于沒有利用步進電機內線圈之間的“中間狀態”,步進電機的步進角度為18度。所以,我將程序代碼改進了一下,如下:代碼二#include <AT89X51.h> static unsigned int count;static int step_index;void delay(unsigned int endcount);void gorun(bit turn, unsigned int speedlevel);void main(void)   count =

7、 0;  step_index = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;  EA = 1;             /允許CPU中斷   TMOD = 0x11; /設定時器0和1為16位模式1   ET0 = 1;          

8、0; /定時器0中斷允許TH0 = 0xFE;   TL0 = 0x0C;  /設定時每隔0.5ms中斷一次    TR0 = 1;         /開始計數  do    gorun(1,60);  while(1); /定時器0中斷處理void timeint(void) interrupt 1   TH0=0xFE;   TL0=0x0C; /設定時每隔0.5ms中斷一次  count+;

9、void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun(bit turn,unsigned int speedlevel)  switch(step_index)    case 0:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;  

10、0; break;  case 1:    P1_0 = 1;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 2:    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;  &#

11、160; break;  case 3:    P1_0 = 0;    P1_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;  

12、  break;  case 5:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6:    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1; 

13、0;  break;  case 7:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    delay(speedlevel);  if (turn=0)      step_index+;    if (step_index>7)      s

14、tep_index=0;    else      step_index-;    if (step_index<0)      step_index=7;      改進的代碼能實現速度和方向的控制,而且,通過step_index靜態全局變量能“記住”步進電機的步進位置,下次調用 gorun()函數時則可直接從上次步進位置繼續轉動,從而實現精確步進;另外,由于利用了步進電機內線圈之間的“中間狀態”,步進角度減

15、小了一半,只為9度,低速運轉也相對穩定一些了。但是,在代碼二中,步進電機的運轉控制是在主函數中,如果程序還需執行其它任務,則有可能使步進電機的運轉收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改進:代碼三#include <AT89X51.h> static unsigned int count;  /計數static int step_index;  /步進索引數,值為07static bit turn;  /步進電機轉動方向static bit stop_flag;  /步進電機停止標志static int s

16、peedlevel; /步進電機轉速參數,數值越大速度越慢,最小值為1,速度最快static int spcount;    /步進電機轉速參數計數void delay(unsigned int endcount); /延時函數,延時為endcount*0.5毫秒void gorun();          /步進電機控制步進函數void main(void)   count = 0;  step_index = 0;  spcount

17、 = 0;  stop_flag = 0;P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;EA = 1;             /允許CPU中斷   TMOD = 0x11; /設定時器0和1為16位模式1   ET0 = 1;           /定時器0中斷允許TH0 = 0

18、xFE;  TL0 = 0x0C;   /設定時每隔0.5ms中斷一次  TR0 = 1;         /開始計數 turn = 0;speedlevel = 2;  delay(10000);  speedlevel = 1;  do    speedlevel = 2;    delay(10000);    speedlevel = 1;

19、    delay(10000);    stop_flag=1;    delay(10000);    stop_flag=0;  while(1); /定時器0中斷處理 void timeint(void) interrupt 1   TH0=0xFE;  TL0=0x0C; /設定時每隔0.5ms中斷一次  count+;  spcount-;  if(spcount<=0)   &

20、#160;  spcount = speedlevel;    gorun();  void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun()  if (stop_flag=1)      P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 =

21、 0;    return;    switch(step_index)    case 0: /0    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;    break;  case 1: /0、1    P1_0 = 1;    P1_1 = 1;

22、60;   P1_2 = 0;    P1_3 = 0;    break;  case 2: /1    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 3: /1、2    P1_0 = 0;    P1

23、_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:  /2    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;    break;  case 5: /2、3    P1_0 = 0; 

24、;   P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6: /3    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    break;  case 7: /3、0    P1_0

25、 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    if (turn=0)      step_index+;    if (step_index>7)      step_index=0;    else      step_index-; 

26、60;  if (step_index<0)      step_index=7;      在代碼三中,我將步進電機的運轉控制放在時間中斷函數之中,這樣主函數就能很方便的加入其它任務的執行,而對步進電機的運轉不產生影響。在此代碼中,不但實現了步進電機的轉速和轉向的控制,另外還加了一個停止的功能,呵呵,這肯定是需要的。步進電機從靜止到高速轉動需要一個加速的過程,否則電機很容易被“卡住”,代碼一、二實現加速不是很方便,而在代碼三中,加速則很容易了。在此代碼中,當轉速參數speedlevel

27、為2時,可以算出,此時步進電機的轉速為1500RPM,而當轉速參數speedlevel 1時,轉速為3000RPM。當步進電機停止,如果直接將speedlevel 設為1,此時步進電機將被“卡住”,而如果先把speedlevel 設為2,讓電機以1500RPM的轉速轉起來,幾秒種后,再把speedlevel 設為1,此時電機就能以3000RPM的轉速高速轉動,這就是“加速”的效果。在此電路中,考慮到電流的緣故,我用的NPN三極管是S8050,它的電流最大可達1500mA,而在實際運轉中,我用萬用表測了一下,當轉速為1500RPM時,步進電機的電流只有90mA左右,電機發熱量較小,當轉速為60R

28、PM時,步進電機的電流為200mA左右,電機發熱量較大,所以NPN三極管也可以選用9013,對于電機發熱量大的問題,可加一個10歐到20歐的限流電阻,不過這樣步進電機的功率將會變小。51單片機驅動步進電機電路及程序在這里介紹一下用51單片機驅動步進電機的方法。 這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!  該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。采用51驅動ULN2003的方法進行驅動。 ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大

29、,大家可自行加大驅動電壓到12V。  *;*步進電機的驅動*; DESIGN BY BENLADN911    FOSC = 12MHz    2005.05.19;-; 步進電機的驅動信號必須為脈沖信號! 轉動的速度和脈沖的頻率成正比!; 本步進電機步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!;-; A組線圈對應 P2.4; B組線圈對應 P2.5; C組線圈對應 P2.6; D組線圈對應 P2.7; 正轉次序: AB組-BC組-CD組-DA組 (即一個脈沖,正轉 7.5 度);-;-正轉- OR

30、G 0000H LJMP MAINORG 0100HMAIN:MOV R3,#144   正轉 3 圈共 144 脈沖START:MOV R0,#00HSTART1:MOV P2,#00HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START   對 A 的判斷,當 A = 0 時則轉到 STARTMOV P2,ALCALL DELAYINC R0DJNZ R3,START1MOV P2,#00HLCALL DELAY1;-反轉-MOV R3,#144    反轉一圈共 144 個脈沖STA

31、RT2:MOV P2,#00HMOV R0,#05START3:MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START2MOV P2,ACALL DELAYINC R0DJNZ R3,START3MOV P2,#00HLCALL DELAY1LJMP MAINDELAY: MOV R7,#40 步進電機的轉速M3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3 RETDELAY1: MOV   R4,#20    2S 延時子程序DEL2: MOV  

32、 R3,#200DEL3: MOV   R2,#250            DJNZ  R2,$            DJNZ  R3,DEL3            DJNZ 

33、; R4,DEL2            RETTABLE:DB 30H,60H,0C0H,90H  正轉表DB 00  正轉結束DB 30H,90H,0C0H,60H  反轉表DB 00  反轉結束END主題: 單片機控制步進電機驅動器工作原理 步進電機在控制系統中具有廣泛的應用。它可以把脈沖信號轉換成角位移,并且可用作電磁制動輪、電磁差分器、或角位移發生器等。有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需

34、自己設計驅動器。本文介紹的就是為從一日本產舊式打印機上拆下的步進電機而設計的驅動器。    本文先介紹該步進電機的工作原理,然后介紹了其驅動器的軟、硬件設計。 1. 步進電機的工作原理    該步進電機為一四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖  圖1 四相步進電機步進示意圖    開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號齒對齊,同時,轉子的1、4號齒就和C、D

35、相繞組磁極產生錯齒,2、5號齒就和D、A相繞組磁極產生錯齒。    當開關SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉子轉動,1、4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產生錯齒,2、5號齒就和A、D相繞組磁極產生錯齒。依次類推,A、B、C、D四相繞組輪流供電,則轉子會沿著A、B、C、D方向轉動。    四相步進電機按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,

36、八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。    單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖2.a、b、c所示:  a. 單四拍                                 

37、;                     b. 雙四拍                             

38、60;          c八拍圖2.步進電機工作時序波形圖2.基于AT89C2051的步進電機驅動器系統電路原理步進電機驅動器系統電路原理如圖3:  圖3 步進電機驅動器系統電路原理圖    AT89C2051將控制脈沖從P1口的P1.4P1.7輸出,經74LS14反相后進入9014,經9014放大后控制光電開關,光電隔離后,由功率管TIP122將脈沖信號進行電壓和電流放大,驅動步進電機的各相繞組。使步進電機隨著不同的脈沖信號分別作正轉、反轉、加速、減速和停止等動

39、作。圖中L1為步進電機的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下盡量減小AT89C2051對上位機脈沖信號周期的影響。    圖3中的RL1RL4為繞組內阻,50電阻是一外接電阻,起限流作用,也是一個改善回路時間常數的元件。D1D4為續流二極管,使電機繞組產生的反電動勢通過續流二極管(D1D4)而衰減掉,從而保護了功率管TIP122不受損壞。    在50外接電阻上并聯一個200F電容,可以改善注入步進電機繞組的電流脈沖前沿,提高了步進電機的高頻性能。與續流二極管串聯的200電阻可減小回

40、路的放電時間常數,使繞組中電流脈沖的后沿變陡,電流下降時間變小,也起到提高高頻工作性能的作用。3.軟件設計該驅動器根據撥碼開關KX、KY的不同組合有三種工作方式供選擇:方式1為中斷方式:P3.5(INT1)為步進脈沖輸入端,P3.7為正反轉脈沖輸入端。上位機(PC機或單片機)與驅動器僅以2條線相連。方式2為串行通訊方式:上位機(PC機或單片機)將控制命令發送給驅動器,驅動器根據控制命令自行完成有關控制過程。方式3為撥碼開關控制方式:通過K1K5的不同組合,直接控制步進電機。當上電或按下復位鍵KR后,AT89C2051先檢測撥碼開關KX、KY的狀態,根據KX、KY 的不同組合,進入不同的工作方式

41、。以下給出方式1的程序流程框圖與源程序。在程序的編制中,要特別注意步進電機在換向時的處理。為使步進電機在換向時能平滑過渡,不至于產生錯步,應在每一步中設置標志位。其中20H單元的各位為步進電機正轉標志位;21H單元各位為反轉標志位。在正轉時,不僅給正轉標志位賦值,也同時給反轉標志位賦值;在反轉時也如此。這樣,當步進電機換向時,就可以上一次的位置作為起點反向運動,避免了電機換向時產生錯步。 圖4 方式1程序框圖方式1源程序:   MOV        20H,#00H   &#

42、160;          ;20H單元置初值,電機正轉位置指針  MOV         21H,#00H              ;21H單元置初值,電機反轉位置指針  MOV        

43、P1,#0C0H              ;P1口置初值,防止電機上電短路  MOV         TMOD,#60H           ;T1計數器置初值,開中斷  MOV       

44、60; TL1,#0FFH  MOV         TH1,#0FFH  SETB        ET1  SETB        EA  SETB        TR1  SJMP      &#

45、160; $;*計數器1中斷程序*IT1P:       JB          P3.7,FAN              ;電機正、反轉指針;*電機正轉*            JB  

46、        00H,LOOP0            JB          01H,LOOP1            JB       

47、0;  02H,LOOP2            JB          03H,LOOP3            JB          04H,LOOP4  

48、0;         JB          05H,LOOP5            JB          06H,LOOP6        &#

49、160;   JB          07H,LOOP7LOOP0:      MOV         P1,#0D0H            MOV         2

50、0H,#02H            MOV         21H,#40H            AJMP        QUITLOOP1:      MOV &#

51、160;       P1,#090H            MOV         20H,#04H            MOV         21H,#

52、20H            AJMP        QUITLOOP2:      MOV         P1,#0B0H            MOV  

53、       20H,#08H            MOV         21H,#10H            AJMP        QUITLOOP3:

54、0;     MOV         P1,#030H            MOV         20H,#10H            MOV  

55、0;      21H,#08H            AJMP        QUITLOOP4:      MOV         P1,#070H       &#

56、160;    MOV         20H,#20H            MOV         21H,#04H            AJMP   &

57、#160;    QUITLOOP5:      MOV         P1,#060H            MOV         20H,#40H        

58、    MOV         21H,#02H            AJMP        QUITLOOP6:      MOV         P1,#0E0H 

59、           MOV         20H,#80H            MOV         21H,#01H        

60、0;   AJMP        QUITLOOP7:      MOV         P1,#0C0H            MOV         20H,#01H 

61、0;          MOV         21H,#80H            AJMP        QUIT;*電機反轉*FAN:        JB 

62、60;        08H,LOOQ0            JB          09H,LOOQ1            JB       &

63、#160;  0AH,LOOQ2            JB          0BH,LOOQ3            JB          0CH,LOOQ4  &

64、#160;         JB          0DH,LOOQ5            JB          0EH,LOOQ6        

65、;    JB          0FH,LOOQ7LOOQ0:      MOV         P1,#0A0H            MOV        

66、; 21H,#02H            MOV         20H,#40H            AJMP        QUITLOOQ1:      MOV 

67、;        P1,#0E0H            MOV         21H,#04H            MOV         20

68、H,#20H            AJMP        QUITLOOQ2:      MOV         P1,#0C0H            MOV 

69、60;       21H,#08H            MOV         20H,#10H            AJMP        QUITLOOQ3:&

70、#160;     MOV         P1,#0D0H            MOV         21H,#10H            MOV  &

71、#160;      20H,#08H            AJMP        QUITLOOQ4:      MOV         P1,#050H       

72、;     MOV         21H,#20H            MOV         20H,#04H            AJMP  

73、0;     QUITLOOQ5:      MOV         P1,#070H            MOV         21H,#40H       

74、60;    MOV         20H,#02H            AJMP        QUITLOOQ6:      MOV         P1,#030H

75、60;           MOV         21H,#80H            MOV         20H,#01H        &

76、#160;   AJMP        QUITLOOQ7:      MOV         P1,#0B0H            MOV         21H,#01H &

77、#160;          MOV         20H,#80HQUIT:       RETI            END4.結論    該驅動器經實驗驗證能驅動0.5N.m的步進電機。將驅動部分的電阻、電容及續流二極管

78、的有關參數加以調整,可驅動1.2N.m的步進電機。該驅動器電路簡單可靠,結構緊湊,對于I/O口線與單片機資源緊張的系統來說特別適用。步進電機的選用計算方法步進電機是一種能將數字輸入脈沖轉換成旋轉或直線增量運動的電磁執行元件。每輸入一個脈沖電機轉軸步進一個步距角增量 步進電機是一種能將數字輸入脈沖轉換成旋轉或直線增量運動的電磁執行元件。每輸入一個脈沖電機轉軸步進一個步距角增量。電機總的回轉角與輸入脈沖數成正比例,相應的轉速取決于輸入脈沖頻率。 步進電機是機電一體化產品中關鍵部件之一,通常被用作定位控制和定速控制。步進電機慣量低、定位精度高、無累積誤差、控制簡單等特點。廣泛應用于機電一體化產品中,

79、如:數控機床、包裝機械、計算機外圍設備、復印機、傳真機等。 選擇步進電機時,首先要保證步進電機的輸出功率大于負載所需的功率。而在選用功率步進電機時,首先要計算機械系統的負載轉矩,電機的矩頻特性能滿足機械負載并有一定的余量保證其運行可靠。在實際工作過程中,各種頻率下的負載力矩必須在矩頻特性曲線的范圍內。一般地說最大靜力矩Mjmax大的電機,負載力矩大。 選擇步進電機時,應使步距角和機械系統匹配,這樣可以得到機床所需的脈沖當量。在機械傳動過程中為了使得有更小的脈沖當量,一是可以改變絲桿的導程,二是可以通過步進電機的細分驅動來完成。但細分只能改變其分辨率,不改變其精度。精度是由電機的固有特性所決定。

80、 選擇功率步進電機時,應當估算機械負載的負載慣量和機床要求的啟動頻率,使之與步進電機的慣性頻率特性相匹配還有一定的余量,使之最高速連續工作頻率能滿足機床快速移動的需要。 選擇步進電機需要進行以下計算: (1)計算齒輪的減速比 根據所要求脈沖當量,齒輪減速比i計算如下: i=(.S)/(360.) (1-1) 式中 -步進電機的步距角(o/脈沖) S -絲桿螺距(mm) -(mm/脈沖) (2)計算工作臺,絲桿以及齒輪折算至電機軸上的慣量Jt。 Jt=J1+(1/i2)(J2+Js)+W/g(S/2)2 (1-2) 式中Jt -折算至電機軸上的慣量(Kg.cm.s2) J1、J2 -齒輪慣量(K

81、g.cm.s2) Js -絲桿慣量(Kg.cm.s2) W-工作臺重量(N) S -絲桿螺距(cm) (3)計算電機輸出的總力矩M M=Ma+Mf+Mt (1-3) Ma=(Jm+Jt).n/T×1.02×102 (1-4) 式中Ma -電機啟動加速力矩(N.m) Jm、Jt-電機自身慣量與負載慣量(Kg.cm.s2) n-電機所需達到的轉速(r/min) T-電機升速時間(s) Mf=(u.W.s)/(2i)×102 (1-5) Mf-導軌摩擦折算至電機的轉矩(N.m) u-摩擦系數 -傳遞效率 Mt=(Pt.s)/(2i)×102 (1-6) Mt-

82、切削力折算至電機力矩(N.m) Pt-最大切削力(N) (4)負載起動頻率估算。數控系統控制電機的啟動頻率與負載轉矩和慣量有很大關系,其估算公式為 fq=fq0(1-(Mf+Mt)/Ml)÷(1+Jt/Jm) 1/2 (1-7) 式中fq-帶載起動頻率(Hz) fq0-空載起動頻率 Ml-起動頻率下由矩頻特性決定的電機輸出力矩(N.m) 若負載參數無法精確確定,則可按fq=1/2fq0進行估算. (5)運行的最高頻率與升速時間的計算。由于電機的輸出力矩隨著頻率的升高而下降,因此在最高頻率 時,由矩頻特性的輸出力矩應能驅動負載,并留有足夠的余量。 (6)負載力矩和最大靜力矩Mmax。負

83、載力矩可按式(1-5)和式(1-6)計算,電機在最大進給速度時,由矩頻特性決定的電機輸出力矩要大于Mf與Mt之和,并留有余量。一般來說,Mf與Mt之和應小于(0.2 0.4)Mmax.基于單片機的步進電機開環控制系統設計Research on the Driver and Control System of the Step Motor摘要: 本文研究開發了一種步進電機驅動器及其控制系統。該系統以PC機作為上位機,以單片機作為下位機,可使上位機能夠可靠地將經過處理的控制指令和參數發送到下位機,保證下位機能夠準確、及時地發出控制信號,通過驅動器驅動步進電機工作。同時,上位機檢測下位機的各種狀態信

84、號,進行診斷和處理。關鍵字: 步進電機;控制系統;驅動器;通信電路Abstract: A high performance control system of stepping motor has been developed. The system adopts the PC as master computer and the single-chip as slave computer. Control instructions and parameter have been delivered from the master computer to slave computer depe

85、ndently and smoothly in order to guarantee the work that can be accurately and promptly done. Besides, the host computer collects various kinds of state signal that the slave computer feedbacks to diagnose and manipulate. Keywords: Step Motor; Control System; Driver; Communication Circuit1 引言步進電機又稱脈

86、沖電動機,是數字控制的一種執行元件。它是隨著計算機控制系統發展而發展起來,利用電脈沖信號進行控制,將電脈沖信號轉換成相應的角位移或者線位移的電動機。對于步進電機控制系統,運動控制器就像是它的中樞神經系統,指揮著它的每個動作。本文以步進電機為控制對象,繼承傳統步進電機控制的優點,研制高性能步進電機驅動器及控制系統。2 系統總體設計 圖1 控制器總體結構圖步進電機控制器是步進電機控制系統重要部分,控制器接收上位機發送的指令,并根據指令向各步進電機發出控制信號,各個電機的驅動器則將控制信號轉變成直接驅動步進電機的電信號,實現步進電機的控制。采用PC機的控制系統,其軟硬件資源豐富,柔性極強。

87、圖1為控制器總體結構圖。單片機的種類是很多的,有PIC系列、Motorola系列、Intel系列8051類單片機等。各個系列的單片機各有所長,在處理速度、穩定性、I/O能力、功耗、功能齊全、價格等方面各有優劣。這些種類繁多的單片機家族,給我們單片機的選擇提供了很大的余地。Intel公司生產的51系列單片機具有功能強大、價格低廉、體積小、開發工具易操作等特點,在市場中占有很大的份額,是一種比較通用且經濟實惠的產品。因而本系統中選用了40管腳的51單片機ATMEL89C51作為主控芯片。3 硬件詳細設計3.1 通信電路設計通過EPP并行口可以簡單方便地設計出各種接口應用電路,其設計方法與總線方式更為接近,由于它所用的信號線十分有限,必須把數據的傳送分為兩個周期。EPP口的數據與地址分時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論