




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
四相步進(jìn)電機(jī)全教程——蓋爾@袁〔4、21〕前段時(shí)間就有玩過步進(jìn)電機(jī)了,但是后來(lái)因?yàn)橛脖P壞了,資料全沒了,之后想再玩的時(shí)間都不知道該怎么弄了,這時(shí)候覺得假設(shè)當(dāng)時(shí)有留點(diǎn)資料發(fā)到網(wǎng)上的話,那現(xiàn)在也就不會(huì)那么糾結(jié)了,所以,昨晚又再一次拿起那步進(jìn)電機(jī),再一次玩一下,大概把之前那些東西回想起來(lái)了,現(xiàn)在寫一份小教程〔之所以叫全教程,是因?yàn)榭戳诉@份資料之后,對(duì)應(yīng)地也就大概能用起來(lái),對(duì)步進(jìn)電機(jī)也有一個(gè)大概的了解了〕,以共大家學(xué)習(xí),希望高手拍磚!〔里面有些是直接引用網(wǎng)上的資料,如有原作者看到的話,我在這里跟他說(shuō)聲謝謝,因?yàn)槟鷮懙锰昧?!〕?qū)動(dòng)電路我用的是L298N這款很經(jīng)典的電機(jī)驅(qū)動(dòng)芯片,這芯片可以驅(qū)動(dòng)直流電機(jī),步進(jìn)電機(jī)等,功能相當(dāng)強(qiáng)大,很好用,雖然貴了點(diǎn)〔下面再介紹一種比擬好的,價(jià)格比擬低的驅(qū)動(dòng)電路,也相當(dāng)好用〕,但是還是用了,畢竟是經(jīng)典之作嘛!呵呵!電路如下:大家可以看到,上面這電機(jī)驅(qū)動(dòng)芯片L298N有四個(gè)輸入〔IN1,IN2,IN3,IN4〕和四個(gè)輸出〔M1,M2〕,對(duì)了,就是對(duì)應(yīng)單片機(jī)〔或者其它主控芯片,比方說(shuō)M3,我用的就是這個(gè)〕的輸入控制端,然后這四個(gè)控制端通過L298N間接地控制了步進(jìn)電機(jī)〔也就是圖里的M1,M2〕,因?yàn)椴竭M(jìn)電機(jī)轉(zhuǎn)動(dòng)的時(shí)候需要比擬大的電流,單片機(jī)IO引腳沒法提供,只有通過這驅(qū)動(dòng)芯片才能夠帶動(dòng)起來(lái)!電路里面還有PWMA和PWMB,這是使能端,用于使能M1和M2是否被輸入控制的,高電平有效!一般我們假設(shè)需要控制的話,這個(gè)就接單片機(jī)的IO引腳上,假設(shè)不需要獨(dú)立控制的話那直接接高電平就行了!另外,大家可以看到電路里面還有一個(gè)5V的輸入,具體這個(gè)是做什么的我也不是很清楚,不過照給就是了,沒問題的!好,首先先把這電路焊出來(lái),記得,因?yàn)長(zhǎng)298N工作的時(shí)候電流比擬大,所以要求必需加上一個(gè)散熱片,這樣有利于保護(hù)電路不會(huì)因?yàn)檫^熱而燒了!這里有一個(gè)小知識(shí)跟大家說(shuō)一下,焊電路最好是加上一個(gè)電源指示燈,這樣的好處多多,可以防止電源接反而完全不知!OK,這個(gè)方案介紹完了,下面介紹另一種本錢比擬低的驅(qū)動(dòng)方案!假設(shè)手頭上有ULN2003的話,也可以用來(lái)當(dāng)成驅(qū)動(dòng)電路用,我們只要知道驅(qū)動(dòng)電路的作用就是放大那個(gè)電流,那任何一種能夠放大電流的方法都可以拿過來(lái)用,包括你用三極管都行!下面提供一個(gè)三極管的驅(qū)動(dòng)電路!至于ULN2003,具體電路我就不說(shuō)了!很簡(jiǎn)單的,看下芯片的PDF就知道了。對(duì)了,這里順便介紹一個(gè)找PDF比擬全的網(wǎng)站——ICPDF,當(dāng)然IC37也很全!步進(jìn)電機(jī)原理按照常理來(lái)說(shuō),步進(jìn)電機(jī)接線要根據(jù)線的顏色來(lái)區(qū)分接線。但是不同公司生產(chǎn)的步進(jìn)電機(jī),線的顏色不一樣。特別是國(guó)外的步進(jìn)電機(jī)。那么,步進(jìn)電機(jī)接線應(yīng)該用萬(wàn)用表打表。步進(jìn)電機(jī)內(nèi)部構(gòu)造如下列圖:通過上圖可知,A,~A是聯(lián)通的,B和~B是聯(lián)通。那么,A和~A是一組a,B和~B是一組b。不管是兩相四相,四相五線,四相六線步進(jìn)電機(jī)。內(nèi)部構(gòu)造都是如此。至于究竟是四線,五線,還是六線。就要看A和~A之間,B和B~之間有沒有公共端com抽線。如果a組和b組各自有一個(gè)com端,那么該步進(jìn)電機(jī)六線,如果a和b組的公共端連在一起,那么是5線的。所以,要弄清步進(jìn)電機(jī)如何接線,只需把a(bǔ)組和b組分開。用萬(wàn)用表打。四線:由于四線沒有com公共抽線,所以,a和b組是絕對(duì)絕緣的,不連通的。所以,用萬(wàn)用表測(cè),不連通的是一組。五線:由于五線中,a和b組的公共端是連接在一起的。用萬(wàn)用表測(cè),當(dāng)發(fā)現(xiàn)有一根線和其他幾根線的電阻是相當(dāng)?shù)?,那么,這根線就是公共com端。對(duì)于驅(qū)動(dòng)五線步進(jìn)電機(jī),公共com端不連接也是可以驅(qū)動(dòng)步進(jìn)電機(jī)的。六線:a和b組的公共抽線com端是不連通的。同樣,用萬(wàn)用表測(cè)電阻,發(fā)現(xiàn)其中一根線和其他兩根線阻止是一樣的,那么這根線是com端,另2根線就屬于一組。對(duì)于驅(qū)動(dòng)四相六線步進(jìn)電機(jī),兩根公共com端不接先也可以驅(qū)動(dòng)該步進(jìn)電機(jī)的。通過上面的方法都可以測(cè)得不同線對(duì)應(yīng)的接線,當(dāng)然,也還有一些朋友不知道,那測(cè)出AA’和BB’之后,怎么分開哪根是A哪根是A’,哪根是B哪根是B’呢?之前我也有一樣的問題,相信初學(xué)步進(jìn)電機(jī)的朋友也一樣,我這里有一看到一個(gè)帖,里面介紹了一種方法,不知道好不好用〔我這邊的步進(jìn)電機(jī)就不行〕:拿到步進(jìn)電機(jī),根據(jù)以前看書對(duì)四相步進(jìn)電機(jī)的了解,我對(duì)它進(jìn)行了初步的測(cè)試,就是將5伏電源的正端接上最邊上兩根褐色〔指的是公共端,不同電機(jī)顏色不同〕的線,然后用5伏電源的地線分別和另外四根線〔紅、蘭、白、橙〕〔指的是剩下的控制線,不同電機(jī)顏色不同〕依次接觸,發(fā)現(xiàn)每接觸一下,步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)一個(gè)角度,來(lái)回五次,電機(jī)剛好轉(zhuǎn)一圈,說(shuō)明此步進(jìn)電機(jī)的步進(jìn)角度為360/(4×5)=18度。地線與四線接觸的順序相反,電機(jī)的轉(zhuǎn)向也相反。除了上面這種方法,現(xiàn)在還沒有看到有帖介紹如何區(qū)分這四條線的,當(dāng)然,假設(shè)有朋友研究出來(lái)還請(qǐng)共享一下!謝謝!如果實(shí)在不行,最好是找下別人現(xiàn)有的程序,然后一個(gè)一個(gè)試!沒方法!驅(qū)動(dòng)方法我們驅(qū)動(dòng)步進(jìn)電機(jī)的話有好幾種方法,個(gè)人覺得比擬簡(jiǎn)單也比擬常用的還是下面這兩種,有四相四拍運(yùn)行方式即AB-BC-CD-DA-AB,四相八拍運(yùn)行方式即A-AB-B-BC-C-CD-D-DA-A.,什么是四相四拍,什么是四相八拍,這些字母代表什么意思,請(qǐng)往下看!上圖是表示剛剛步進(jìn)電機(jī)的內(nèi)部結(jié)構(gòu)〔手工畫的不好看〕,沒有畫中線抽頭。中間那個(gè)表示電機(jī)轉(zhuǎn)子,左邊藍(lán)色的表示A線圈,上面紅色的表示B線圈,大家看到上面標(biāo)志中還有一些是打括號(hào)的,表示什么呢?就是說(shuō)這個(gè)接線是一開始講到的A’接線,跟剛剛講到的那個(gè)C字母表示的接線其實(shí)是同一根線!那現(xiàn)在我就用圖來(lái)表示解釋下什么是四相四拍,AB-BC-CD-DA-AB表示的是什么。AB-BC-CD-DA-AB中的出現(xiàn)的字母表示這根線對(duì)應(yīng)加上高電平,其余的都是低電平。具體就是,在AB處于高電平,CD處于低電平,延時(shí)一小段時(shí)間;然后BC處于高電平,AD處于低電平,再延時(shí)一小段時(shí)間,如此下去CD高,AB低,延時(shí),DA高,BC低,延時(shí)……那究竟為什么要這樣子呢?下面我用圖給大家解釋一下。第一:AB高,CD低,電流那么如下列圖黃色線所示方向流動(dòng),產(chǎn)生的磁場(chǎng)使得電機(jī)轉(zhuǎn)子順時(shí)針轉(zhuǎn)動(dòng)90度,轉(zhuǎn)過90度之后就停在那里了;第二:BC高,AD低,電流如下列圖所示,同樣道理,電機(jī)轉(zhuǎn)子轉(zhuǎn)過90度;第三,CD高,AB低,如下列圖:第四,DA高,BC低,如下列圖:如此一循環(huán)之后,電機(jī)轉(zhuǎn)子就轉(zhuǎn)過了一周,如果這樣循環(huán)這樣一個(gè)動(dòng)作的話,那電機(jī)就會(huì)轉(zhuǎn)起來(lái)了!現(xiàn)在大家應(yīng)該明白了什么是四相四拍了吧!同理,四相八拍也是一樣的道理,這里就不多說(shuō)了,大家應(yīng)該明白!上面講述的是順時(shí)針轉(zhuǎn)動(dòng),那逆時(shí)針轉(zhuǎn)動(dòng)的話該怎么弄了,相信明白上面原理的朋友自己都能夠畫出來(lái),我這里就只是簡(jiǎn)單地提供一下給大家做參考,時(shí)序?yàn)镈A-CD-BC-AB!軟件局部:知道了硬件原理,軟件方面就簡(jiǎn)單好辦了,只要按照上面說(shuō)的對(duì)應(yīng)地給上高電平低電平的,再來(lái)個(gè)延時(shí)就可以實(shí)現(xiàn)了。對(duì)于四相四拍的驅(qū)動(dòng)方法,程序形式如下:While(1){IN1=1;IN2=1;IN3=0;IN4=0;Delay();IN1=0;IN2=1;IN3=1;IN4=0;Delay();IN1=0;IN2=0;IN3=1;IN4=1;Delay();IN1=1;IN2=0;IN3=0;IN4=1;Delay();}同樣,反向轉(zhuǎn)動(dòng)的也能夠搞定,四相八拍的也一樣道理。那程序是不是就非常之簡(jiǎn)單呢?當(dāng)然不是,程序里面最難的要確定的就是——延時(shí),這個(gè)延時(shí)的時(shí)間把握得好才能夠驅(qū)動(dòng)起來(lái),太長(zhǎng)了不行,太短了也不行,那究竟是多少才適宜呢?這里我教大家一個(gè)方法,原理很簡(jiǎn)單,就是用一個(gè)for循環(huán)來(lái)變換不同的延時(shí)時(shí)間,通過這樣來(lái)確定在哪個(gè)延時(shí)時(shí)間范圍之內(nèi)比擬適宜,這樣來(lái)慢慢試:For(num=0;num<100;num++){For(time=0;time<100;time++) {IN1=1;IN2=1;IN3=0;IN4=0;Delay(num*1000);IN1=0;IN2=1;IN3=1;IN4=0;Delay(num*1000);IN1=0;IN2=0;IN3=1;IN4=1;Delay(num*1000);IN1=1;IN2=0;IN3=0;IN4=1;Delay(num*1000);}}程序里面,num是用來(lái)調(diào)整每次延時(shí)時(shí)長(zhǎng)的,time是做為每次一個(gè)固定時(shí)長(zhǎng)讓電機(jī)轉(zhuǎn)一定的時(shí)間,因?yàn)槲覀儾豢梢宰岆姍C(jī)一直變變變,而需要變一下轉(zhuǎn)幾圈看看合不適宜,就是這樣的道理了,通過這種方法大家可以大概知道電機(jī)適時(shí)多長(zhǎng)時(shí)長(zhǎng)比擬適宜,在一個(gè)適合的延時(shí)里電機(jī)才能夠轉(zhuǎn)動(dòng),不同的延時(shí)電機(jī)轉(zhuǎn)動(dòng)速度不同。下面提供一些C51的程序代碼〔注:這些是在另一份資料找到的,非本人所寫,在這里感謝原作者的無(wú)私〕:C51程序代碼為:代碼一#include<AT89X51.h>staticunsignedintcount;staticunsignedintendcount;voiddelay();voidmain(void)
{
count=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=0xFC;
TL0=0x18;
//設(shè)定時(shí)每隔1ms中斷一次
TR0=1;
//開始計(jì)數(shù)startrun:
P1_3=0;
P1_0=1;
delay();
P1_0=0;
P1_1=1;
delay();
P1_1=0;
P1_2=1;
delay();
P1_2=0;
P1_3=1;
delay();gotostartrun;
}//定時(shí)器0中斷處理voidtimeint(void)interrupt1
{
TH0=0xFC;
TL0=0x18;//設(shè)定時(shí)每隔1ms中斷一次
count++;
}voiddelay()
{
endcount=2;
count=0;do{}while(count<endcount);
}將上面的程序編譯,用ISP下載線下載至單片機(jī)運(yùn)行,步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)起來(lái)了,初步告捷!不過,上面的程序還只是實(shí)現(xiàn)了步進(jìn)電機(jī)的初步控制,速度和方向的控制還不夠靈活,另外,由于沒有利用步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)〞,步進(jìn)電機(jī)的步進(jìn)角度為18度。所以,我將程序代碼改良了一下,如下:代碼二#include<AT89X51.h>staticunsignedintcount;staticintstep_index;voiddelay(unsignedintendcount);voidgorun(bitturn,unsignedintspeedlevel);voidmain(void)
{
count=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;
//定時(shí)器0中斷允許
TH0=0xFE;
TL0=0x0C;
//設(shè)定時(shí)每隔0.5ms中斷一次
TR0=1;
//開始計(jì)數(shù)do{
gorun(1,60);
}while(1);}//定時(shí)器0中斷處理voidtimeint(void)interrupt1
{
TH0=0xFE;
TL0=0x0C;//設(shè)定時(shí)每隔0.5ms中斷一次
count++;
}voiddelay(unsignedintendcount)
{
count=0;do{}while(count<endcount);
}voidgorun(bitturn,unsignedintspeedlevel)
{switch(step_index)
{case0:
P1_0=1;
P1_1=0;
P1_2=0;
P1_3=0;break;case1:
P1_0=1;
P1_1=1;
P1_2=0;
P1_3=0;break;case2:
P1_0=0;
P1_1=1;
P1_2=0;
P1_3=0;break;case3:
P1_0=0;
P1_1=1;
P1_2=1;
P1_3=0;break;case4:
P1_0=0;
P1_1=0;
P1_2=1;
P1_3=0;break;case5:
P1_0=0;
P1_1=0;
P1_2=1;
P1_3=1;break;case6:
P1_0=0;
P1_1=0;
P1_2=0;
P1_3=1;break;case7:
P1_0=1;
P1_1=0;
P1_2=0;
P1_3=1;
}
delay(speedlevel);if(turn==0)
{
step_index++;if(step_index>7)
step_index=0;
}else
{
step_index--;if(step_index<0)
step_index=7;
}
}改良的代碼能實(shí)現(xiàn)速度和方向的控制,而且,通過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)角度減小了一半,只為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)收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改良:代碼三#include<AT89X51.h>staticunsignedintcount;
//計(jì)數(shù)staticintstep_index;
//步進(jìn)索引數(shù),值為0-7staticbitturn;
//步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向staticbitstop_flag;
//步進(jìn)電機(jī)停止標(biāo)志staticintspeedlevel;//步進(jìn)電機(jī)轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快staticintspcount;
//步進(jìn)電機(jī)轉(zhuǎn)速參數(shù)計(jì)數(shù)voiddelay(unsignedintendcount);
//延時(shí)函數(shù),延時(shí)為endcount*0.5毫秒voidgorun();
//步進(jìn)電機(jī)控制步進(jìn)函數(shù)voidmain(void)
{
count=0;
step_index=0;
spcount=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=0xFE;
TL0=0x0C;
//設(shè)定時(shí)每隔0.5ms中斷一次
TR0=1;
//開始計(jì)數(shù)
turn=0;
speedlevel=2;
delay(10000);
speedlevel=1;do{
speedlevel=2;
delay(10000);
speedlevel=1;
delay(10000);
stop_flag=1;
delay(10000);
stop_flag=0;
}while(1);}//定時(shí)器0中斷處理
voidtimeint(void)interrupt1
{
TH0=0xFE;
TL0=0x0C;//設(shè)定時(shí)每隔0.5ms中斷一次
count++;
spcount--;if(spcount<=0)
{
spcount=speedlevel;
gorun();
}}voiddelay(unsignedintendcount)
{
count=0;do{}while(count<endcount);
}voidgorun()
{if(stop_flag==1)
{
P1_0=0;
P1_1=0;
P1_2=0;
P1_3=0;return;
}switch(step_index)
{case0://0
P1_0=1;
P1_1=0;
P1_2=0;
P1_3=0;break;case1://0、1
P1_0=1;
P1_1=1;
P1_2=0;
P1_3=0;break;case2://1
P1_0=0;
P1_1=1;
P1_2=0;
P1_3=0;break;case3://1、2
P1_0=0;
P1_1=1;
P1_2=1;
P1_3=0;break;case4:
//2
P1_0=0;
P1_1=0;
P1_2=1;
P1_3=0;break;case5://2、3
P1_0=0;
P1_1=0;
P1_2=1;
P1_3=1;break;case6://3
P1_0=0;
P1_1=0
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車庫(kù)租賃與新能源汽車推廣合同
- 桉樹種植基地經(jīng)營(yíng)權(quán)轉(zhuǎn)讓與租賃合同
- 倉(cāng)單質(zhì)押融資貸款合同模板
- 高標(biāo)準(zhǔn)倉(cāng)儲(chǔ)服務(wù)與財(cái)產(chǎn)擔(dān)保綜合合同范本
- 大宗商品采購(gòu)合同運(yùn)輸成本控制協(xié)議
- 科技創(chuàng)業(yè)園區(qū)場(chǎng)地租賃與創(chuàng)業(yè)孵化合同
- 多功能車間承包經(jīng)營(yíng)合同標(biāo)準(zhǔn)范本
- 小學(xué)軍訓(xùn)后的感想(4篇)
- 制作合同模板(9篇)
- 2025年中班工作計(jì)劃范文(20篇)
- 2025年廣東省出版集團(tuán)數(shù)字出版有限公司招聘筆試參考題庫(kù)含答案解析
- 光伏施工安全措施方案
- 2024年貴州省遵義市仁懷市小升初數(shù)學(xué)試卷(含答案)
- 2024湖南衡陽(yáng)縣城市和農(nóng)村建設(shè)投資有限公司招聘專業(yè)技術(shù)人員2人筆試參考題庫(kù)附帶答案詳解
- 2025年輸變電電力變壓器行業(yè)市場(chǎng)分析現(xiàn)狀
- 專題19 介詞和介詞短語(yǔ)(清單+專練)-中考英語(yǔ)一輪復(fù)習(xí)知識(shí)清單
- 2025新人教版七年級(jí)道德與法治下冊(cè)教案教學(xué)設(shè)計(jì)11.3 嚴(yán)于律己(含反思)
- 2025年醫(yī)院基建科面試題及答案
- (一模)臨沂市2025屆高三高考第一次模擬考試歷史試卷(含標(biāo)準(zhǔn)答案)
- 2026年版廣西高等職業(yè)教育考試(新職教高考)普高生專用升高職大?!堵殬I(yè)適應(yīng)性測(cè)試》模擬試卷(第1套)
- 企業(yè)營(yíng)銷戰(zhàn)略咨詢服務(wù)協(xié)議
評(píng)論
0/150
提交評(píng)論