




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
步進(jìn)電機(jī)細(xì)分驅(qū)動電路及原理(后面是已經(jīng)編好的程序改改就可直接使用)步進(jìn)電機(jī)細(xì)分驅(qū)動電路及原理(后面是已經(jīng)編好的程序改改就可直接使用)細(xì)分原理分析步進(jìn)電機(jī)驅(qū)動線路,如果按照環(huán)形分配器決定的分配方式,控制電動機(jī)各相繞組的導(dǎo)通或截止,從而使電動機(jī)產(chǎn)生步進(jìn)所需的旋轉(zhuǎn)磁勢拖動轉(zhuǎn)子步進(jìn)旋轉(zhuǎn),則步距角只有二種,即整步工作或半步工作,步距角已由電機(jī)結(jié)構(gòu)所確定。如果要求步進(jìn)電機(jī)有更小的步距角,更高的分辨率,或者為了電機(jī)振動、噪聲等原因,可以在每次輸入脈沖切換時,只改變相應(yīng)繞組中額定的一部分,則電機(jī)的合成磁勢也只旋轉(zhuǎn)步距角的一部分,轉(zhuǎn)子的每步運(yùn)行也只有步距角的一部分。這里,繞組電流不是一個方波,而是階梯波,額定電流是臺階式的投入或切除,電流分成多少個臺階,則轉(zhuǎn)子就以同樣的次數(shù)轉(zhuǎn)過一個步距角,這種將一個步距角細(xì)分成若干步的驅(qū)動方法,稱為細(xì)分驅(qū)動。在國外,對于步進(jìn)系統(tǒng),主要采用二相混合式步進(jìn)電機(jī)及相應(yīng)的細(xì)分驅(qū)動器。但在國內(nèi),廣大用戶對“細(xì)分”還不是特別了解,有的只是認(rèn)為,細(xì)分是為了提高精度,其實不然,細(xì)分主要是改善電機(jī)的運(yùn)行性能。由于細(xì)分驅(qū)動器要精確控制電機(jī)的相電流,所以對驅(qū)動器要有相當(dāng)高的技術(shù)要求和工藝要求,成本亦會較高。圖3給出了三相步進(jìn)電機(jī)八細(xì)分時的各相電流狀態(tài)。由于各相電流是以1P4的步距上升或下降的,原來一步所轉(zhuǎn)過的角度θ將由八步完成,實現(xiàn)了步距角的八細(xì)分。由此可見,步進(jìn)電機(jī)細(xì)分驅(qū)動的關(guān)鍵在于細(xì)分步進(jìn)電機(jī)各相勵磁繞組中的電流。步進(jìn)電機(jī)細(xì)分驅(qū)動電路為了對步進(jìn)電機(jī)的相電流進(jìn)行控制,從而達(dá)到細(xì)分步進(jìn)電機(jī)步距角的目的,人們曾設(shè)計了很多種步進(jìn)電機(jī)的細(xì)分驅(qū)動電路。隨著微型計算機(jī)的發(fā)展,特別是單片計算機(jī)的出現(xiàn),為步進(jìn)電機(jī)的細(xì)分驅(qū)動帶來了便利。目前,步進(jìn)電機(jī)細(xì)分驅(qū)動電路大多數(shù)都采用單片微機(jī)控制,它們的構(gòu)成框圖如圖4所示。單片機(jī)根據(jù)要求的步距角計算出各相繞組中通過的電流值,并輸出到數(shù)模轉(zhuǎn)換器(DPA)中,由DPA把數(shù)字量轉(zhuǎn)換為相應(yīng)的模擬電壓,經(jīng)過環(huán)形分配器加到各相的功放電路上,控制功放電路給各相繞組通以相應(yīng)的電流,來實現(xiàn)步進(jìn)電機(jī)的細(xì)分。單片機(jī)控制的步進(jìn)電機(jī)細(xì)分驅(qū)動電路根據(jù)末級功放管的工作狀態(tài)可分為放大型和開關(guān)型兩種(見下圖5)。圖5步進(jìn)電機(jī)細(xì)分驅(qū)動電路放大型步進(jìn)電機(jī)細(xì)分驅(qū)動電路中末級功放管的輸出電流直接受單片機(jī)輸出的控制電壓控制,電路較簡單,電流的控制精度也較高,但是由于末級功放管工作在放大狀態(tài),使功放管上的功耗較大,發(fā)熱嚴(yán)重,容易引起晶體管的溫漂,影響驅(qū)動電路的性能。甚至還可能由于晶體管的熱擊穿,使電路不能正常工作。因此該驅(qū)動電路一般應(yīng)用于驅(qū)動電流較小、控制精度較高、散熱情況較好的場合。開關(guān)型步進(jìn)電機(jī)細(xì)分驅(qū)動電路中的末級功放管工作在寬調(diào)制電路的調(diào)制頻率較高,一般大于20kHz,因此,雖然是斷續(xù)通電,但電機(jī)繞組中的電流還是較平穩(wěn)的。和斬波式細(xì)分動電路相比,脈寬調(diào)制式細(xì)分驅(qū)動電路的控制精度高,工作頻率穩(wěn)定,但線路較復(fù)雜。因此,脈寬調(diào)制式細(xì)分驅(qū)動電路多用于綜合驅(qū)動性能要求較高的場合。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è)定時器0和1為16位模式1ET0=1;//定時器0中斷允許TH0=0xFC;TL0=0x18;//設(shè)定時每隔1ms中斷一次TR0=1;//開始計數(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;}//定時器0中斷處理voidtimeint(void)interrupt1{TH0=0xFC;TL0=0x18;//設(shè)定時每隔1ms中斷一次count++;}voiddelay(){endcount=2;count=0;do{}while(count<endcount);}將上面的程序編譯,用ISP下載線下載至單片機(jī)運(yùn)行,步進(jìn)電機(jī)便轉(zhuǎn)動起來了,初步告捷!不過,上面的程序還只是實現(xiàn)了步進(jìn)電機(jī)的初步控制,速度和方向的控制還不夠靈活,另外,由于沒有利用步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)電機(jī)的步進(jìn)角度為18度。所以,我將程序代碼改進(jìn)了一下,如下:代碼二#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è)定時器0和1為16位模式1ET0=1;//定時器0中斷允許TH0=0xFE;TL0=0x0C;//設(shè)定時每隔0.5ms中斷一次TR0=1;//開始計數(shù)do{gorun(1,60);}while(1);}//定時器0中斷處理voidtimeint(void)interrupt1{TH0=0xFE;TL0=0x0C;//設(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;}}改進(jìn)的代碼能實現(xiàn)速度和方向的控制,而且,通過step_index靜態(tài)全局變量能“記住”步進(jìn)電機(jī)的步進(jìn)位置,下次調(diào)用gorun()函數(shù)時則可直接從上次步進(jìn)位置繼續(xù)轉(zhuǎn)動,從而實現(xiàn)精確步進(jìn);另外,由于利用了步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)角度減小了一半,只為9度,低速運(yùn)轉(zhuǎn)也相對穩(wěn)定一些了。但是,在代碼二中,步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制是在主函數(shù)中,如果程序還需執(zhí)行其它任務(wù),則有可能使步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改進(jìn):代碼三#include<AT89X51.h>staticunsignedintcount;//計數(shù)staticintstep_index;//步進(jìn)索引數(shù),值為0-7staticbitturn;//步進(jìn)電機(jī)轉(zhuǎn)動方向staticbitstop_flag;//步進(jìn)電機(jī)停止標(biāo)志staticintspeedlevel;//步進(jìn)電機(jī)轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快staticintspcount;//步進(jìn)電機(jī)轉(zhuǎn)速參數(shù)計數(shù)voiddelay(unsignedintendcount);//延時函數(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è)定時器0和1為16位模式1ET0=1;//定時器0中斷允許TH0=0xFE;TL0=0x0C;//設(shè)定時每隔0.5ms中斷一次TR0=1;//開始計數(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);}//定時器0中斷處理voidtimeint(void)interrupt1{TH0=0xFE;TL0=0x0C;//設(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://0P1_0=1;P1_1=0;P1_2=0;P1_3=0;break;case1://0、1P1_0=1;P1_1=1;P1_2=0;P1_3=0;break;case2://1P1_0=0;P1_1=1;P1_2=0;P1_3=0;break;case3://1、2P1_0=0;P1_1=1;P1_2=1;P1_3=0;break;case4://2P1_0=0;P1_1=0;P1_2=1;P1_3=0;break;case5://2、3P1_0=0;P1_1=0;P1_2=1;P1_3=1;break;case6://3P1_0=0;P1_1=0;P1_2=0;P1_3=1;break;case7://3、0P1_0=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--;if(step_index<0)step_index=7;}}在代碼三中,我將步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制放在時間中斷函數(shù)之中,這樣主函數(shù)就能很方便的加入其它任務(wù)的執(zhí)行,而對步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)不產(chǎn)生影響。在此代碼中,不但實現(xiàn)了步進(jìn)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向的控制,另外還加了一個停止的功能,呵呵,這肯定是需要的。步進(jìn)電機(jī)從靜止到高速轉(zhuǎn)動需要一個加速的過程,否則電機(jī)很容易被“卡住”,代碼一、二實現(xiàn)加速不是很方便,而在代碼三中,加速則很容易了。在此代碼中,當(dāng)轉(zhuǎn)速參數(shù)speedlevel為2時,可以算出,此時步進(jìn)電機(jī)的轉(zhuǎn)速為1500RPM,而當(dāng)轉(zhuǎn)速參數(shù)speedlevel1時,轉(zhuǎn)速為3000RPM。當(dāng)步進(jìn)電機(jī)停止,如果直接將speedlevel設(shè)為1,此時步進(jìn)電機(jī)將被“卡住”,而如果先把speedlevel
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量控制計劃表CP
- 12、新人培訓(xùn)教材接觸
- 貸房貸委托書范本
- 敬老院雙十一活動策劃書
- 高級文秘工作簡歷模板
- 會計信息系統(tǒng)應(yīng)用 (第二版)教案全套 鐘愛軍
- 農(nóng)民合作社土地承包經(jīng)營權(quán)確權(quán)登記指南
- 三農(nóng)行業(yè)三農(nóng)村基層社區(qū)治理實踐指南
- 二零二五年辦公室防盜門定制與智能安防系統(tǒng)安裝合同
- 商務(wù)活動策劃與執(zhí)行手冊
- 2025年企業(yè)資金授權(quán)管理協(xié)議范本
- 2024-2025學(xué)年山東省濟(jì)南市九年級(上)期末語文試卷(含答案)
- 鄧宗良《煤油燈》閱讀答案
- 2024中考地理時事熱點強(qiáng)化訓(xùn)練
- 2024年合理膳食教案
- 臨床檢驗分子生物學(xué)發(fā)展
- 2025版年度城市綠化活動策劃及實施服務(wù)合同范本
- 2025年全國高考體育單招政治時事填空練習(xí)50題(含答案)
- 人教版高中物理《圓周運(yùn)動》
- 【課件】平行線的概念課件人教版(2024)+數(shù)學(xué)七年級下冊
- 勞務(wù)派遣服務(wù)方案(技術(shù)方案)
評論
0/150
提交評論