




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、51單片機(jī)控制四相步進(jìn)電機(jī)接觸單片機(jī)快兩年了,不過(guò)只是非常業(yè)余的興趣,實(shí)踐卻不多,到現(xiàn)在還算是個(gè)初學(xué)者吧。這幾天給自己的任務(wù)就是搞定步進(jìn)電機(jī)的單片機(jī)控制。以前曾看過(guò)有關(guān)步進(jìn)電機(jī)原理和控制的資料,畢竟自己沒(méi)有做過(guò),對(duì)其具體原理還不是很清楚。今天從淘寶網(wǎng)買了一個(gè)EPSON的UMX-1型步進(jìn)電機(jī),此步進(jìn)電機(jī)為雙極性四相,接線共有六根,外形如下圖所示:拿到步進(jìn)電機(jī),根據(jù)以前看書對(duì)四相步進(jìn)電機(jī)的了解,我對(duì)它進(jìn)行了初步的測(cè)試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外四根線(紅、蘭、白、橙)依次接觸,發(fā)現(xiàn)每接觸一下,步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)一個(gè)角度,來(lái)回五次,電機(jī)剛好轉(zhuǎn)一圈,說(shuō)明此步
2、進(jìn)電機(jī)的步進(jìn)角度為360/(4×5)18度。地線與四線接觸的順序相反,電機(jī)的轉(zhuǎn)向也相反。如果用單片機(jī)來(lái)控制此步進(jìn)電機(jī),則只需分別依次給四線一定時(shí)間的脈沖電流,電機(jī)便可連續(xù)轉(zhuǎn)動(dòng)起來(lái)。通過(guò)改變脈沖電流的時(shí)間間隔,就可以實(shí)現(xiàn)對(duì)轉(zhuǎn)速的控制;通過(guò)改變給四線脈沖電流的順序,則可實(shí)現(xiàn)對(duì)轉(zhuǎn)向的控制。所以,設(shè)計(jì)了如下電路圖:制作的實(shí)物圖如下: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; /設(shè)定時(shí)器0和1為16位模式1 ET0 = 1; /定
4、時(shí)器0中斷允許TH0 = 0xFC; TL0 = 0x18; /設(shè)定時(shí)每隔1ms中斷一次 TR0 = 1; /開(kāi)始計(jì)數(shù)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; /定時(shí)器0中斷處理void timeint(void) interrupt 1 TH0=0xFC; TL0=0x18; /設(shè)定時(shí)每隔1ms中斷一次 count+;void delay() endcount=2; count=0; dowhile(count<endcount);將上面的程序編譯,用ISP下載線下載至單片機(jī)運(yùn)行,
6、步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)起來(lái)了,初步告捷!不過(guò),上面的程序還只是實(shí)現(xiàn)了步進(jìn)電機(jī)的初步控制,速度和方向的控制還不夠靈活,另外,由于沒(méi)有利用步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)電機(jī)的步進(jìn)角度為18度。所以,我將程序代碼改進(jìn)了一下,如下:代碼二#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; /設(shè)定時(shí)器0和1為16位模式1 ET0 = 1;
8、0; /定時(shí)器0中斷允許TH0 = 0xFE; TL0 = 0x0C; /設(shè)定時(shí)每隔0.5ms中斷一次 TR0 = 1; /開(kāi)始計(jì)數(shù) do gorun(1,60); while(1); /定時(shí)器0中斷處理void timeint(void) interrupt 1 TH0=0xFE; TL0=0x0C; /設(shè)定時(shí)每隔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; 改進(jìn)的代碼能實(shí)現(xiàn)速度和方向的控制,而且,通過(guò)step_index靜態(tài)全局變量能“記住”步進(jìn)電機(jī)的步進(jìn)位置,下次調(diào)用 gorun()函數(shù)時(shí)則可直接從上次步進(jìn)位置繼續(xù)轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)精確步進(jìn);另外,由于利用了步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)角度減
15、小了一半,只為9度,低速運(yùn)轉(zhuǎn)也相對(duì)穩(wěn)定一些了。但是,在代碼二中,步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制是在主函數(shù)中,如果程序還需執(zhí)行其它任務(wù),則有可能使步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改進(jìn):代碼三#include <AT89X51.h> static unsigned int count; /計(jì)數(shù)static int step_index; /步進(jìn)索引數(shù),值為07static bit turn; /步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向static bit stop_flag; /步進(jìn)電機(jī)停止標(biāo)志static int s
16、peedlevel; /步進(jìn)電機(jī)轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快static int spcount; /步進(jìn)電機(jī)轉(zhuǎn)速參數(shù)計(jì)數(shù)void delay(unsigned int endcount); /延時(shí)函數(shù),延時(shí)為endcount*0.5毫秒void gorun(); /步進(jìn)電機(jī)控制步進(jìn)函數(shù)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; /設(shè)定時(shí)器0和1為16位模式1 ET0 = 1; /定時(shí)器0中斷允許TH0 = 0
18、xFE; TL0 = 0x0C; /設(shè)定時(shí)每隔0.5ms中斷一次 TR0 = 1; /開(kāi)始計(jì)數(shù) 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); /定時(shí)器0中斷處理 void timeint(void) interrupt 1 TH0=0xFE; TL0=0x0C; /設(shè)定時(shí)每隔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; 在代碼三中,我將步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制放在時(shí)間中斷函數(shù)之中,這樣主函數(shù)就能很方便的加入其它任務(wù)的執(zhí)行,而對(duì)步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)不產(chǎn)生影響。在此代碼中,不但實(shí)現(xiàn)了步進(jìn)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向的控制,另外還加了一個(gè)停止的功能,呵呵,這肯定是需要的。步進(jìn)電機(jī)從靜止到高速轉(zhuǎn)動(dòng)需要一個(gè)加速的過(guò)程,否則電機(jī)很容易被“卡住”,代碼一、二實(shí)現(xiàn)加速不是很方便,而在代碼三中,加速則很容易了。在此代碼中,當(dāng)轉(zhuǎn)速參數(shù)speedlevel
27、為2時(shí),可以算出,此時(shí)步進(jìn)電機(jī)的轉(zhuǎn)速為1500RPM,而當(dāng)轉(zhuǎn)速參數(shù)speedlevel 1時(shí),轉(zhuǎn)速為3000RPM。當(dāng)步進(jìn)電機(jī)停止,如果直接將speedlevel 設(shè)為1,此時(shí)步進(jìn)電機(jī)將被“卡住”,而如果先把speedlevel 設(shè)為2,讓電機(jī)以1500RPM的轉(zhuǎn)速轉(zhuǎn)起來(lái),幾秒種后,再把speedlevel 設(shè)為1,此時(shí)電機(jī)就能以3000RPM的轉(zhuǎn)速高速轉(zhuǎn)動(dòng),這就是“加速”的效果。在此電路中,考慮到電流的緣故,我用的NPN三極管是S8050,它的電流最大可達(dá)1500mA,而在實(shí)際運(yùn)轉(zhuǎn)中,我用萬(wàn)用表測(cè)了一下,當(dāng)轉(zhuǎn)速為1500RPM時(shí),步進(jìn)電機(jī)的電流只有90mA左右,電機(jī)發(fā)熱量較小,當(dāng)轉(zhuǎn)速為60R
28、PM時(shí),步進(jìn)電機(jī)的電流為200mA左右,電機(jī)發(fā)熱量較大,所以NPN三極管也可以選用9013,對(duì)于電機(jī)發(fā)熱量大的問(wèn)題,可加一個(gè)10歐到20歐的限流電阻,不過(guò)這樣步進(jìn)電機(jī)的功率將會(huì)變小。51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)電路及程序在這里介紹一下用51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)的方法。 這款步進(jìn)電機(jī)的驅(qū)動(dòng)電壓12V,步進(jìn)角為 7.5度 . 一圈 360 度 , 需要 48 個(gè)脈沖完成! 該步進(jìn)電機(jī)有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。采用51驅(qū)動(dòng)ULN2003的方法進(jìn)行驅(qū)動(dòng)。 ULN2003的驅(qū)動(dòng)直接用單片機(jī)系統(tǒng)的5V電壓,可能力矩不是很大
29、,大家可自行加大驅(qū)動(dòng)電壓到12V。 *;*步進(jìn)電機(jī)的驅(qū)動(dòng)*; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19;-; 步進(jìn)電機(jī)的驅(qū)動(dòng)信號(hào)必須為脈沖信號(hào)! 轉(zhuǎn)動(dòng)的速度和脈沖的頻率成正比!; 本步進(jìn)電機(jī)步進(jìn)角為 7.5度 . 一圈 360 度 , 需要 48 個(gè)脈沖完成!;-; A組線圈對(duì)應(yīng) P2.4; B組線圈對(duì)應(yīng) P2.5; C組線圈對(duì)應(yīng) P2.6; D組線圈對(duì)應(yīng) P2.7; 正轉(zhuǎn)次序: AB組-BC組-CD組-DA組 (即一個(gè)脈沖,正轉(zhuǎn) 7.5 度);-;-正轉(zhuǎn)- OR
30、G 0000H LJMP MAINORG 0100HMAIN:MOV R3,#144 正轉(zhuǎn) 3 圈共 144 脈沖START:MOV R0,#00HSTART1:MOV P2,#00HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START 對(duì) A 的判斷,當(dāng) A = 0 時(shí)則轉(zhuǎn)到 STARTMOV P2,ALCALL DELAYINC R0DJNZ R3,START1MOV P2,#00HLCALL DELAY1;-反轉(zhuǎn)-MOV R3,#144 反轉(zhuǎn)一圈共 144 個(gè)脈沖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 步進(jìn)電機(jī)的轉(zhuǎn)速M(fèi)3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3 RETDELAY1: MOV R4,#20 2S 延時(shí)子程序DEL2: MOV
32、 R3,#200DEL3: MOV R2,#250 DJNZ R2,$ DJNZ R3,DEL3 DJNZ
33、; R4,DEL2 RETTABLE:DB 30H,60H,0C0H,90H 正轉(zhuǎn)表DB 00 正轉(zhuǎn)結(jié)束DB 30H,90H,0C0H,60H 反轉(zhuǎn)表DB 00 反轉(zhuǎn)結(jié)束END主題: 單片機(jī)控制步進(jìn)電機(jī)驅(qū)動(dòng)器工作原理 步進(jìn)電機(jī)在控制系統(tǒng)中具有廣泛的應(yīng)用。它可以把脈沖信號(hào)轉(zhuǎn)換成角位移,并且可用作電磁制動(dòng)輪、電磁差分器、或角位移發(fā)生器等。有時(shí)從一些舊設(shè)備上拆下的步進(jìn)電機(jī)(這種電機(jī)一般沒(méi)有損壞)要改作它用,一般需
34、自己設(shè)計(jì)驅(qū)動(dòng)器。本文介紹的就是為從一日本產(chǎn)舊式打印機(jī)上拆下的步進(jìn)電機(jī)而設(shè)計(jì)的驅(qū)動(dòng)器。 本文先介紹該步進(jìn)電機(jī)的工作原理,然后介紹了其驅(qū)動(dòng)器的軟、硬件設(shè)計(jì)。 1. 步進(jìn)電機(jī)的工作原理 該步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖 圖1 四相步進(jìn)電機(jī)步進(jìn)示意圖 開(kāi)始時(shí),開(kāi)關(guān)SB接通電源,SA、SC、SD斷開(kāi),B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D
35、相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。 當(dāng)開(kāi)關(guān)SC接通電源,SB、SA、SD斷開(kāi)時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。 四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,
36、八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。 單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖2.a、b、c所示: a. 單四拍
37、; b. 雙四拍
38、60; c八拍圖2.步進(jìn)電機(jī)工作時(shí)序波形圖2.基于AT89C2051的步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理如圖3: 圖3 步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理圖 AT89C2051將控制脈沖從P1口的P1.4P1.7輸出,經(jīng)74LS14反相后進(jìn)入9014,經(jīng)9014放大后控制光電開(kāi)關(guān),光電隔離后,由功率管TIP122將脈沖信號(hào)進(jìn)行電壓和電流放大,驅(qū)動(dòng)步進(jìn)電機(jī)的各相繞組。使步進(jìn)電機(jī)隨著不同的脈沖信號(hào)分別作正轉(zhuǎn)、反轉(zhuǎn)、加速、減速和停止等動(dòng)
39、作。圖中L1為步進(jìn)電機(jī)的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下盡量減小AT89C2051對(duì)上位機(jī)脈沖信號(hào)周期的影響。 圖3中的RL1RL4為繞組內(nèi)阻,50電阻是一外接電阻,起限流作用,也是一個(gè)改善回路時(shí)間常數(shù)的元件。D1D4為續(xù)流二極管,使電機(jī)繞組產(chǎn)生的反電動(dòng)勢(shì)通過(guò)續(xù)流二極管(D1D4)而衰減掉,從而保護(hù)了功率管TIP122不受損壞。 在50外接電阻上并聯(lián)一個(gè)200F電容,可以改善注入步進(jìn)電機(jī)繞組的電流脈沖前沿,提高了步進(jìn)電機(jī)的高頻性能。與續(xù)流二極管串聯(lián)的200電阻可減小回
40、路的放電時(shí)間常數(shù),使繞組中電流脈沖的后沿變陡,電流下降時(shí)間變小,也起到提高高頻工作性能的作用。3.軟件設(shè)計(jì)該驅(qū)動(dòng)器根據(jù)撥碼開(kāi)關(guān)KX、KY的不同組合有三種工作方式供選擇:方式1為中斷方式:P3.5(INT1)為步進(jìn)脈沖輸入端,P3.7為正反轉(zhuǎn)脈沖輸入端。上位機(jī)(PC機(jī)或單片機(jī))與驅(qū)動(dòng)器僅以2條線相連。方式2為串行通訊方式:上位機(jī)(PC機(jī)或單片機(jī))將控制命令發(fā)送給驅(qū)動(dòng)器,驅(qū)動(dòng)器根據(jù)控制命令自行完成有關(guān)控制過(guò)程。方式3為撥碼開(kāi)關(guān)控制方式:通過(guò)K1K5的不同組合,直接控制步進(jìn)電機(jī)。當(dāng)上電或按下復(fù)位鍵KR后,AT89C2051先檢測(cè)撥碼開(kāi)關(guān)KX、KY的狀態(tài),根據(jù)KX、KY 的不同組合,進(jìn)入不同的工作方式
41、。以下給出方式1的程序流程框圖與源程序。在程序的編制中,要特別注意步進(jìn)電機(jī)在換向時(shí)的處理。為使步進(jìn)電機(jī)在換向時(shí)能平滑過(guò)渡,不至于產(chǎn)生錯(cuò)步,應(yīng)在每一步中設(shè)置標(biāo)志位。其中20H單元的各位為步進(jìn)電機(jī)正轉(zhuǎn)標(biāo)志位;21H單元各位為反轉(zhuǎn)標(biāo)志位。在正轉(zhuǎn)時(shí),不僅給正轉(zhuǎn)標(biāo)志位賦值,也同時(shí)給反轉(zhuǎn)標(biāo)志位賦值;在反轉(zhuǎn)時(shí)也如此。這樣,當(dāng)步進(jìn)電機(jī)換向時(shí),就可以上一次的位置作為起點(diǎn)反向運(yùn)動(dòng),避免了電機(jī)換向時(shí)產(chǎn)生錯(cuò)步。 圖4 方式1程序框圖方式1源程序: MOV 20H,#00H
42、160; ;20H單元置初值,電機(jī)正轉(zhuǎn)位置指針 MOV 21H,#00H ;21H單元置初值,電機(jī)反轉(zhuǎn)位置指針 MOV
43、P1,#0C0H ;P1口置初值,防止電機(jī)上電短路 MOV TMOD,#60H ;T1計(jì)數(shù)器置初值,開(kāi)中斷 MOV
44、60; TL1,#0FFH MOV TH1,#0FFH SETB ET1 SETB EA SETB TR1 SJMP
45、160; $;*計(jì)數(shù)器1中斷程序*IT1P: JB P3.7,FAN ;電機(jī)正、反轉(zhuǎn)指針;*電機(jī)正轉(zhuǎn)* 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;*電機(jī)反轉(zhuǎn)*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.結(jié)論 該驅(qū)動(dòng)器經(jīng)實(shí)驗(yàn)驗(yàn)證能驅(qū)動(dòng)0.5N.m的步進(jìn)電機(jī)。將驅(qū)動(dòng)部分的電阻、電容及續(xù)流二極管
78、的有關(guān)參數(shù)加以調(diào)整,可驅(qū)動(dòng)1.2N.m的步進(jìn)電機(jī)。該驅(qū)動(dòng)器電路簡(jiǎn)單可靠,結(jié)構(gòu)緊湊,對(duì)于I/O口線與單片機(jī)資源緊張的系統(tǒng)來(lái)說(shuō)特別適用。步進(jìn)電機(jī)的選用計(jì)算方法步進(jìn)電機(jī)是一種能將數(shù)字輸入脈沖轉(zhuǎn)換成旋轉(zhuǎn)或直線增量運(yùn)動(dòng)的電磁執(zhí)行元件。每輸入一個(gè)脈沖電機(jī)轉(zhuǎn)軸步進(jìn)一個(gè)步距角增量 步進(jìn)電機(jī)是一種能將數(shù)字輸入脈沖轉(zhuǎn)換成旋轉(zhuǎn)或直線增量運(yùn)動(dòng)的電磁執(zhí)行元件。每輸入一個(gè)脈沖電機(jī)轉(zhuǎn)軸步進(jìn)一個(gè)步距角增量。電機(jī)總的回轉(zhuǎn)角與輸入脈沖數(shù)成正比例,相應(yīng)的轉(zhuǎn)速取決于輸入脈沖頻率。 步進(jìn)電機(jī)是機(jī)電一體化產(chǎn)品中關(guān)鍵部件之一,通常被用作定位控制和定速控制。步進(jìn)電機(jī)慣量低、定位精度高、無(wú)累積誤差、控制簡(jiǎn)單等特點(diǎn)。廣泛應(yīng)用于機(jī)電一體化產(chǎn)品中,
79、如:數(shù)控機(jī)床、包裝機(jī)械、計(jì)算機(jī)外圍設(shè)備、復(fù)印機(jī)、傳真機(jī)等。 選擇步進(jìn)電機(jī)時(shí),首先要保證步進(jìn)電機(jī)的輸出功率大于負(fù)載所需的功率。而在選用功率步進(jìn)電機(jī)時(shí),首先要計(jì)算機(jī)械系統(tǒng)的負(fù)載轉(zhuǎn)矩,電機(jī)的矩頻特性能滿足機(jī)械負(fù)載并有一定的余量保證其運(yùn)行可靠。在實(shí)際工作過(guò)程中,各種頻率下的負(fù)載力矩必須在矩頻特性曲線的范圍內(nèi)。一般地說(shuō)最大靜力矩Mjmax大的電機(jī),負(fù)載力矩大。 選擇步進(jìn)電機(jī)時(shí),應(yīng)使步距角和機(jī)械系統(tǒng)匹配,這樣可以得到機(jī)床所需的脈沖當(dāng)量。在機(jī)械傳動(dòng)過(guò)程中為了使得有更小的脈沖當(dāng)量,一是可以改變絲桿的導(dǎo)程,二是可以通過(guò)步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)來(lái)完成。但細(xì)分只能改變其分辨率,不改變其精度。精度是由電機(jī)的固有特性所決定。
80、 選擇功率步進(jìn)電機(jī)時(shí),應(yīng)當(dāng)估算機(jī)械負(fù)載的負(fù)載慣量和機(jī)床要求的啟動(dòng)頻率,使之與步進(jìn)電機(jī)的慣性頻率特性相匹配還有一定的余量,使之最高速連續(xù)工作頻率能滿足機(jī)床快速移動(dòng)的需要。 選擇步進(jìn)電機(jī)需要進(jìn)行以下計(jì)算: (1)計(jì)算齒輪的減速比 根據(jù)所要求脈沖當(dāng)量,齒輪減速比i計(jì)算如下: i=(.S)/(360.) (1-1) 式中 -步進(jìn)電機(jī)的步距角(o/脈沖) S -絲桿螺距(mm) -(mm/脈沖) (2)計(jì)算工作臺(tái),絲桿以及齒輪折算至電機(jī)軸上的慣量Jt。 Jt=J1+(1/i2)(J2+Js)+W/g(S/2)2 (1-2) 式中Jt -折算至電機(jī)軸上的慣量(Kg.cm.s2) J1、J2 -齒輪慣量(K
81、g.cm.s2) Js -絲桿慣量(Kg.cm.s2) W-工作臺(tái)重量(N) S -絲桿螺距(cm) (3)計(jì)算電機(jī)輸出的總力矩M M=Ma+Mf+Mt (1-3) Ma=(Jm+Jt).n/T×1.02×102 (1-4) 式中Ma -電機(jī)啟動(dòng)加速力矩(N.m) Jm、Jt-電機(jī)自身慣量與負(fù)載慣量(Kg.cm.s2) n-電機(jī)所需達(dá)到的轉(zhuǎn)速(r/min) T-電機(jī)升速時(shí)間(s) Mf=(u.W.s)/(2i)×102 (1-5) Mf-導(dǎo)軌摩擦折算至電機(jī)的轉(zhuǎn)矩(N.m) u-摩擦系數(shù) -傳遞效率 Mt=(Pt.s)/(2i)×102 (1-6) Mt-
82、切削力折算至電機(jī)力矩(N.m) Pt-最大切削力(N) (4)負(fù)載起動(dòng)頻率估算。數(shù)控系統(tǒng)控制電機(jī)的啟動(dòng)頻率與負(fù)載轉(zhuǎn)矩和慣量有很大關(guān)系,其估算公式為 fq=fq0(1-(Mf+Mt)/Ml)÷(1+Jt/Jm) 1/2 (1-7) 式中fq-帶載起動(dòng)頻率(Hz) fq0-空載起動(dòng)頻率 Ml-起動(dòng)頻率下由矩頻特性決定的電機(jī)輸出力矩(N.m) 若負(fù)載參數(shù)無(wú)法精確確定,則可按fq=1/2fq0進(jìn)行估算. (5)運(yùn)行的最高頻率與升速時(shí)間的計(jì)算。由于電機(jī)的輸出力矩隨著頻率的升高而下降,因此在最高頻率 時(shí),由矩頻特性的輸出力矩應(yīng)能驅(qū)動(dòng)負(fù)載,并留有足夠的余量。 (6)負(fù)載力矩和最大靜力矩Mmax。負(fù)
83、載力矩可按式(1-5)和式(1-6)計(jì)算,電機(jī)在最大進(jìn)給速度時(shí),由矩頻特性決定的電機(jī)輸出力矩要大于Mf與Mt之和,并留有余量。一般來(lái)說(shuō),Mf與Mt之和應(yīng)小于(0.2 0.4)Mmax.基于單片機(jī)的步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)設(shè)計(jì)Research on the Driver and Control System of the Step Motor摘要: 本文研究開(kāi)發(fā)了一種步進(jìn)電機(jī)驅(qū)動(dòng)器及其控制系統(tǒng)。該系統(tǒng)以PC機(jī)作為上位機(jī),以單片機(jī)作為下位機(jī),可使上位機(jī)能夠可靠地將經(jīng)過(guò)處理的控制指令和參數(shù)發(fā)送到下位機(jī),保證下位機(jī)能夠準(zhǔn)確、及時(shí)地發(fā)出控制信號(hào),通過(guò)驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)工作。同時(shí),上位機(jī)檢測(cè)下位機(jī)的各種狀態(tài)信
84、號(hào),進(jìn)行診斷和處理。關(guān)鍵字: 步進(jìn)電機(jī);控制系統(tǒng);驅(qū)動(dòng)器;通信電路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 引言步進(jìn)電機(jī)又稱脈
86、沖電動(dòng)機(jī),是數(shù)字控制的一種執(zhí)行元件。它是隨著計(jì)算機(jī)控制系統(tǒng)發(fā)展而發(fā)展起來(lái),利用電脈沖信號(hào)進(jìn)行控制,將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或者線位移的電動(dòng)機(jī)。對(duì)于步進(jìn)電機(jī)控制系統(tǒng),運(yùn)動(dòng)控制器就像是它的中樞神經(jīng)系統(tǒng),指揮著它的每個(gè)動(dòng)作。本文以步進(jìn)電機(jī)為控制對(duì)象,繼承傳統(tǒng)步進(jìn)電機(jī)控制的優(yōu)點(diǎn),研制高性能步進(jìn)電機(jī)驅(qū)動(dòng)器及控制系統(tǒng)。2 系統(tǒng)總體設(shè)計(jì) 圖1 控制器總體結(jié)構(gòu)圖步進(jìn)電機(jī)控制器是步進(jìn)電機(jī)控制系統(tǒng)重要部分,控制器接收上位機(jī)發(fā)送的指令,并根據(jù)指令向各步進(jìn)電機(jī)發(fā)出控制信號(hào),各個(gè)電機(jī)的驅(qū)動(dòng)器則將控制信號(hào)轉(zhuǎn)變成直接驅(qū)動(dòng)步進(jìn)電機(jī)的電信號(hào),實(shí)現(xiàn)步進(jìn)電機(jī)的控制。采用PC機(jī)的控制系統(tǒng),其軟硬件資源豐富,柔性極強(qiáng)。
87、圖1為控制器總體結(jié)構(gòu)圖。單片機(jī)的種類是很多的,有PIC系列、Motorola系列、Intel系列8051類單片機(jī)等。各個(gè)系列的單片機(jī)各有所長(zhǎng),在處理速度、穩(wěn)定性、I/O能力、功耗、功能齊全、價(jià)格等方面各有優(yōu)劣。這些種類繁多的單片機(jī)家族,給我們單片機(jī)的選擇提供了很大的余地。Intel公司生產(chǎn)的51系列單片機(jī)具有功能強(qiáng)大、價(jià)格低廉、體積小、開(kāi)發(fā)工具易操作等特點(diǎn),在市場(chǎng)中占有很大的份額,是一種比較通用且經(jīng)濟(jì)實(shí)惠的產(chǎn)品。因而本系統(tǒng)中選用了40管腳的51單片機(jī)ATMEL89C51作為主控芯片。3 硬件詳細(xì)設(shè)計(jì)3.1 通信電路設(shè)計(jì)通過(guò)EPP并行口可以簡(jiǎn)單方便地設(shè)計(jì)出各種接口應(yīng)用電路,其設(shè)計(jì)方法與總線方式更為接近,由于它所用的信號(hào)線十分有限,必須把數(shù)據(jù)的傳送分為兩個(gè)周期。EPP口的數(shù)據(jù)與地址分時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 籽棉烘干機(jī)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 公司間保密協(xié)議書2篇
- 2025年短周期地震計(jì)合作協(xié)議書
- 2025-2030中國(guó)服飾行業(yè)市場(chǎng)全景調(diào)研及投資價(jià)值評(píng)估咨詢報(bào)告
- 2025-2030中國(guó)普惠金融行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030中國(guó)廉租房建設(shè)營(yíng)銷前景展望及運(yùn)行態(tài)勢(shì)規(guī)劃研究報(bào)告
- 2025-2030中國(guó)干加工食品行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030中國(guó)大豆保健食品行業(yè)市場(chǎng)發(fā)展分析及發(fā)展前景與投資研究報(bào)告
- 2025-2030中國(guó)外科乳膠和丁腈橡膠醫(yī)用手套行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030中國(guó)園林綠化行業(yè)市場(chǎng)發(fā)展前瞻及投資戰(zhàn)略研究報(bào)告
- T-CPMA 034-2023 醫(yī)務(wù)人員醫(yī)院感染預(yù)防與控制
- 2024年北京市東城區(qū)中考一模道德與法治試題
- 肺部感染的護(hù)理課件
- 有余數(shù)的除法算式300題
- 前期物業(yè)服務(wù)前期介入工作方案
- 水泵維保方案
- 2024年醫(yī)藥衛(wèi)生考試-醫(yī)院設(shè)備科筆試歷年真題薈萃含答案
- 園林植物的識(shí)別與應(yīng)用-草本花卉的識(shí)別與應(yīng)用
- 感謝母愛(ài)主題班會(huì)(感恩主題班會(huì))課件
- 第三章 液壓機(jī)ppt
- GB/T 14713-2023旋切機(jī)通用技術(shù)條件
評(píng)論
0/150
提交評(píng)論