版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、二相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計1 設(shè)計任務(wù)分析1.1 設(shè)計任務(wù)設(shè)計一個二相步進(jìn)電機(jī)控制系統(tǒng),電機(jī)有兩組帶中心抽頭的線圈,要求系統(tǒng)具有如下功能:采用單極性控制,用k0-k2做為通電方式選擇鍵,k0為四相單四拍,k1為四相雙四拍,k2為四相八拍;k3為啟動/停止控制、k4方向控制;用4位led數(shù)碼管顯示工作步數(shù)。用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮。1.2 任務(wù)分析根據(jù)任務(wù)要求,二相步進(jìn)電機(jī)包含二相五線、二相六線式兩種類型,二相步進(jìn)電機(jī)要實現(xiàn)四相單四拍、四相雙四拍、四相八拍的運(yùn)行方式,需將二相步進(jìn)電機(jī)改接成四相步進(jìn)電機(jī),為此選定二相六線式步進(jìn)電機(jī),接線時將兩個中心抽頭接為高
2、電平即可將其改為四相電機(jī)。四相單四拍通電方式:a-b-c-d。四相雙四拍通電方式:ab-bc-cd-da。四相八拍通電方式:a-ab-b-bc-c-cd-d-da。控制芯片選用單片機(jī)控制相應(yīng)的i/o口輸出相應(yīng)的電平驅(qū)動電機(jī)驅(qū)動芯片uln2003驅(qū)動步進(jìn)電機(jī)的轉(zhuǎn)動。led數(shù)碼管顯示工作步數(shù)時則需先選定某一個數(shù)碼管工作,再給選定的數(shù)碼管送要顯示的數(shù)據(jù)。正傳、反轉(zhuǎn)、不轉(zhuǎn)時指示燈的顯示可以通過k3(啟動/停止控制鍵)、k4(方向控制鍵)硬件來控制,亦可以通過單片機(jī)輸出高低電平,在軟件中控制。2 方案選擇2.1 方案比較2.1.1 方案一方案一采用atmega128單片機(jī)作為核心控制i/o口輸出電平送給
3、驅(qū)動電路以驅(qū)動電機(jī)運(yùn)轉(zhuǎn)。下圖為電機(jī)的單極性驅(qū)動電路,單片機(jī)輸出的脈沖經(jīng)過光耦隔離后,再通過達(dá)林頓功率管實現(xiàn)功率放大,各個達(dá)林頓功率管輪流導(dǎo)通,產(chǎn)生相應(yīng)的通電時序,從而帶動步進(jìn)電機(jī)的正常轉(zhuǎn)動。改變輸出的脈沖時序即可實現(xiàn)電機(jī)反轉(zhuǎn)。程序中通過軟件延時來控制單片機(jī)i/o口的輸出以達(dá)到控制電機(jī)旋轉(zhuǎn)和數(shù)碼管顯示的目的。圖1 達(dá)林頓功率管驅(qū)動電機(jī)電路圖2.1.2 方案二方案二的控制芯片亦采用atmega128,方案二選用了集成芯片uln2003:uln2003 是高耐壓、大電流達(dá)林頓陳列,由七個硅npn 達(dá)林頓管組成。程序中使用的是定時器0中斷延時,將控制變量自加程序放入中斷子程序中以達(dá)到控制電機(jī)旋轉(zhuǎn)和數(shù)碼
4、管顯示的目的。圖2 uln2003驅(qū)動電機(jī)接線圖2.2 方案的確定通過以上兩個方案的比較,由于方案一、二其他的設(shè)計思路相同,控制芯片都是atmega128,主要區(qū)別在于驅(qū)動電機(jī)的電路和是否使用中斷。由于方案二驅(qū)動電路接線少易于實現(xiàn),且中斷的使用使得延時更加精確,和使數(shù)碼管顯示程序更容易實現(xiàn)的目的,所以本次設(shè)計采用方案二。 3 硬件設(shè)計3.1 系統(tǒng)原理框圖圖3 單片機(jī)控制電機(jī)原理框圖3.2 按鍵電路圖4 按鍵電路如圖4,k0接單片機(jī)pa0口控制電機(jī)單四拍運(yùn)轉(zhuǎn),k1接單片機(jī)pa1口控制電機(jī)雙四拍運(yùn)轉(zhuǎn),k2接單片機(jī)pa2口控制電機(jī)八拍運(yùn)轉(zhuǎn),k3接單片機(jī)pb0口控制電機(jī)的起停,k4接單片機(jī)pa3口控制
5、電機(jī)運(yùn)轉(zhuǎn)的方向。3.3 數(shù)碼管顯示電路如圖5,七段共陰數(shù)碼管的a、b、c、d、e、f、g、dp依次接單片機(jī)的pd0pd7口,顯示單片機(jī)輸出的數(shù)據(jù)。1、2、3、4依次接單片機(jī)的pe0pe3口,單片機(jī)pe口輸出電平驅(qū)動數(shù)碼管顯示pf口送出的數(shù)據(jù)。圖5 數(shù)碼管顯示電路3.4 單片機(jī)驅(qū)動電機(jī)電路圖6 單片機(jī)驅(qū)動電機(jī)電路圖如圖6所示,單片機(jī)的pf口的低四位輸出脈沖給電機(jī)驅(qū)動芯片uln2003,uln2003將單片機(jī)輸出的電流放大后驅(qū)動步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。3.5 單片機(jī)atmega 128引腳圖本設(shè)計采用的是atmega 128單片機(jī),此單片機(jī)內(nèi)部帶有128kb的系統(tǒng)內(nèi)可編程flash程序存儲器,具有在寫的過
6、程中還可以讀的能力,即同時讀寫(rww);4kb的eeprom;4kb的sram;53個通用的i/o端口線;32個通用工作寄存器;實時時鐘(rtc);4個靈活的具有比較模式和pwm功能的定時/計數(shù)器(t/c);2個usart;面向字節(jié)的兩線端口(twi);8通道10位adc;可選的可編程增益;片內(nèi)振蕩器的可編程看門狗定時;串行外圍設(shè)備接口(spi);與ieee1149.1規(guī)范兼容的jtag測試口,此接口同時還可以用于片上調(diào)試;6種可以通過軟件選擇的省電模式。可用于本設(shè)計,其引腳圖如圖7所示。圖7 atmega 128單片機(jī)引腳圖3.6 led燈顯示電路如圖8所示,三個led燈一端公共接地,另一
7、端接在單片機(jī)的pc口上,單片機(jī)pc口輸出高電平,則與某個pc口相對應(yīng)的燈被點(diǎn)亮,輸出低電平則燈熄滅。紅燈接單片機(jī)pc0口,紅燈亮(po0=1),代表電機(jī)正轉(zhuǎn)。黃燈接單片機(jī)pc1口,黃燈亮(pc1=1)時代表電機(jī)反轉(zhuǎn);綠燈接單片機(jī)pc2口,綠燈亮(pc2=1)時代表電機(jī)停轉(zhuǎn)。圖8 led燈顯示電路4 軟件設(shè)計4.1 軟件總流程圖從軟件總體流程圖(圖9)可知:本次程序設(shè)計的思想單片機(jī)通過查詢方式讀取按鍵的狀態(tài)來產(chǎn)生相應(yīng)的控制輸出量,以驅(qū)動步進(jìn)電機(jī)旋轉(zhuǎn)和數(shù)碼管顯示工作步數(shù)。具體過程如下:單片機(jī)先初始化其各個端口,準(zhǔn)備好讀取按鍵電路的狀態(tài)變化。當(dāng)啟動鍵按下時,單片機(jī)繼續(xù)等待工作方式、步進(jìn)方向選擇鍵的狀
8、態(tài)變化,如果方向鍵按下、k0鍵(單四拍)按下,則單片機(jī)內(nèi)部程序?qū)?zhí)行相應(yīng)的操作步進(jìn)電機(jī)以單四拍方式運(yùn)轉(zhuǎn)并且數(shù)碼管顯示工作的步數(shù)。同理k1鍵(雙四拍)或k2鍵(八拍)按下,則步進(jìn)電機(jī)將以相應(yīng)的方式旋轉(zhuǎn)。若啟動鍵按下以后,沒有其他鍵按下,則單片機(jī)將會繼續(xù)等待其他按鍵的操作,直至有按鍵按下才會引起相應(yīng)的操作。電機(jī)運(yùn)轉(zhuǎn)的過程中,如果停止鍵按下,則單片機(jī)不再給電機(jī)、數(shù)碼顯示管送出脈沖,電機(jī)停轉(zhuǎn)、數(shù)碼管停止顯示工作步數(shù)。如果停止鍵沒有按下,則步進(jìn)電機(jī)、數(shù)碼管繼續(xù)先前的工作方式運(yùn)行,直至有其他按鍵按下改變或停止其運(yùn)行方式。圖9 軟件總體流程圖4.2 顯示模塊流程圖圖10 數(shù)碼管顯示流程圖本次設(shè)計顯示模塊采用
9、的是七段共陰數(shù)碼管,要想使數(shù)碼管工作,則必須先給要工作的數(shù)碼管一個脈沖,然后將要顯示的數(shù)據(jù)對應(yīng)的脈沖送給這個數(shù)碼管,這樣數(shù)碼管就能顯示數(shù)據(jù)。如單片機(jī)pe口驅(qū)動數(shù)碼管1,再讓單片機(jī)pd口給數(shù)碼管送數(shù)據(jù)0x3f,則數(shù)碼管將顯示0,09的字段為 :0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f顯示變量放在定時器0中,定時器每執(zhí)行中斷一次,顯示變量自加一次。單片機(jī)pd口通過顯示變量取得09的字段并送給數(shù)碼管顯示。4.3 步進(jìn)電機(jī)運(yùn)行模塊4.3.1 單四拍工作時序波形圖圖11 電機(jī)單四拍工作時序波形圖如圖11所示,電機(jī)單四拍工作時給各相繞組通電的時序為
10、:a-b-c-d。要改變電機(jī)的旋轉(zhuǎn)方向,則只需將繞組通電的順序改為:d-c-b-a即可。4.3.2 雙四拍工作時序波形圖 圖12 電機(jī)雙四拍工作時序波形圖如圖12所示,電機(jī)雙四拍工作與單四拍工作時各繞組通電方式不同,單四拍是各個繞組單獨(dú)通電,而雙四拍是相鄰兩個繞組同時通電,雙四拍給各相繞組通電的時序為:ab-bc-cd-da,如果要反向,則需按dc-cb-ba-ad的順序通電。4.3.3 八拍工作時序波形圖 圖13 電機(jī)八拍工作時序波形圖如圖12所示,八拍工作方式是單四拍和雙四拍兩種工作方式的結(jié)合,通電時序為:a-ab-b-bc-c-cd-d-da,若通電方式改為:d-dc-c-cb-b-ba
11、-a-ad,則電機(jī)運(yùn)轉(zhuǎn)方向改變。4.3.4 電機(jī)不同運(yùn)行方式流程圖圖14 電機(jī)不同運(yùn)行方式流程圖如圖14所示,不同的鍵按下,電機(jī)會以不同的方式運(yùn)行。在程序中,我們先把電機(jī)怎樣運(yùn)轉(zhuǎn)的控制字預(yù)定好并存儲起來,當(dāng)單片機(jī)檢測到相應(yīng)的按鍵按下,則會找到相應(yīng)的控制字并將其循環(huán)通過pf口輸出,控制電機(jī)按照選擇的方式運(yùn)轉(zhuǎn)。5 仿真結(jié)果分析按照硬件設(shè)計圖在proteus中接好線后,將程序?qū)懭雐cc avr編譯器,載入經(jīng)icc avr編譯后生成的hex文件,通過proteus仿真發(fā)現(xiàn):(1)數(shù)碼管顯示工作步數(shù)在步進(jìn)電機(jī)切換工作方式時不能清零,數(shù)碼管仍然以上次的計數(shù)向上累加。(2)在按下停止鍵后,再次啟動電機(jī),電機(jī)
12、正常運(yùn)轉(zhuǎn)而數(shù)碼管不再記錄電機(jī)工作步數(shù)。經(jīng)過反復(fù)分析發(fā)現(xiàn)是程序中的漏洞,在停止鍵按下后添加上端口初始化程序即可解決問題(2),在工作方式切換鍵的程序中添加上數(shù)碼管顯示控制變量清零這條語句,即可解決問題(1)。經(jīng)過反復(fù)調(diào)試,得出了任務(wù)要求中的結(jié)果。最終仿真圖如下: 圖15最終仿真效果圖打開proteus,點(diǎn)擊運(yùn)行按鈕,再閉合啟動/停止鍵k3,并選擇方向、電機(jī)工作方式(通過k4、k0、k1、k2按鍵選定)電機(jī)此時就開始按選定的方式運(yùn)轉(zhuǎn),且數(shù)碼管同步顯示步進(jìn)電機(jī)工作的步數(shù)。如方向鍵k3按下、選擇八拍方式運(yùn)行,則正轉(zhuǎn)指示燈紅燈d2亮且電機(jī)運(yùn)轉(zhuǎn)、數(shù)碼管同步顯示,如此時打開啟動/停止按鍵k3,停止指示燈綠燈
13、d3亮,電機(jī)停轉(zhuǎn)、數(shù)碼管停止顯示。在電機(jī)運(yùn)行時可以改變通過k0k2鍵直接改變電機(jī)的運(yùn)行方式,因為此時電機(jī)運(yùn)行方式已變,故數(shù)碼管將清零并重新顯示改變后電機(jī)工作的步數(shù)。如果在電機(jī)運(yùn)行時改變電機(jī)運(yùn)轉(zhuǎn)的方向,因為電機(jī)并沒有停下來只是方向而已,故此時數(shù)碼管將先前工作步數(shù)的基礎(chǔ)上繼續(xù)記錄電機(jī)改變方向后的工作步數(shù)。6 心得體會微機(jī)控制技術(shù)課程設(shè)計不僅是針對我們學(xué)習(xí)微機(jī)控制技術(shù)這門課的綜合運(yùn)用所學(xué)知識的能力訓(xùn)練,更是對我們一次理論聯(lián)系實踐技能的培養(yǎng)和鍛煉,課程設(shè)計不僅要求我們擁有扎實的理論知識,更需要我們有將理論運(yùn)用于實踐的能力。通過此次課程設(shè)計,使得我對步進(jìn)電機(jī)的原理以及工作方式有了一定的了解,對先前學(xué)過的
14、單片機(jī)的相關(guān)內(nèi)容有了進(jìn)一步的鞏固和提高。在程序編寫方面,最初我選用的是if、else條件選擇語句和while循環(huán)語句來讀取按鍵的信息以使得單片機(jī)選擇相應(yīng)的輸出來控制電機(jī)和驅(qū)動數(shù)碼管,但仿真時發(fā)現(xiàn),按下一個鍵后電機(jī)運(yùn)行,但改變按鍵后電機(jī)仍按以前的方式運(yùn)行。經(jīng)過反復(fù)的檢查發(fā)現(xiàn)原來是程序進(jìn)入了死循環(huán)沒法跳出。經(jīng)過反復(fù)思考后,我選擇了用定時器中斷程序來實現(xiàn)電機(jī)的運(yùn)行和數(shù)碼管的顯示,把控制電機(jī)運(yùn)行的變量i和數(shù)碼管顯示的變量count放在中斷子程序中,每中斷一次,i和count都自加一次,然后在通過按鍵的信息使得單片機(jī)采集變量i和count的值送給相應(yīng)的輸出口輸出變化的電平去驅(qū)動電機(jī)運(yùn)轉(zhuǎn)和數(shù)碼管顯示。通過
15、發(fā)現(xiàn)程序中的問題并經(jīng)過分析最終解決了問題、實現(xiàn)了最初設(shè)定的方案,使得自己在分析問題并解決問題、新方案的設(shè)計、查閱資料、收集有用信息和團(tuán)隊協(xié)作方面的能力得到了鍛煉和提升。參考文獻(xiàn)1 周潤景、張麗娜.基于proteus的avr單片機(jī)設(shè)計與仿真.北京:北京航空航天大學(xué)出版社,2007年2 于海生、潘松峰、于培仁、吳賀榮.微型計算機(jī)控制技術(shù).北京:清華大學(xué)出版社,1999年3 吳紅星.電機(jī)驅(qū)動與控制專用集成電路及應(yīng)用.北京:中國電力出版社,2006年4 張克彥.avr單片機(jī)實用程序設(shè)計.北京:北京航空航天大學(xué)出版社,2004年5 耿德根、宋建國、馬潮、葉勇健.avr高速嵌入式單片機(jī)原理與應(yīng)用.北京:北
16、京航空航天大學(xué)出版社,2003年6 陳冬云、杜敬倉、任柯燕.atmega 128單片機(jī)原理與開發(fā)指導(dǎo).北京:機(jī)械工業(yè)出版社,2005年附錄程序代碼/icc-avr application builder : 2009/6/30 10:39:21/ target : m128/ crystal: 4.0000mhz#include #include unsigned char d48=0x01,0x02,0x04,0x08, /正轉(zhuǎn)單四拍控制字 0x03,0x06,0x0c,0x09, /正轉(zhuǎn)雙四拍控制字 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09,/正轉(zhuǎn)八拍
17、控制字 0x08,0x04,0x02,0x01, /反轉(zhuǎn)單四拍控制字 0x09,0x0c,0x06,0x03, /反轉(zhuǎn)雙四拍控制字 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;/反轉(zhuǎn)八拍控制字unsigned char scan4=0xf7,0xfb,0xfd,0xfe;/*選擇掃描顯示數(shù)碼管,送pe口選數(shù)碼管*/unsigned char seven_seg10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*0-9的字符表,送pd口顯示*/unsigned char flag;/正反轉(zhuǎn)標(biāo)志:flag
18、=0 正轉(zhuǎn) ,flag=3 反轉(zhuǎn)。unsigned char pai; /工作方式選擇標(biāo)志:pai=0單四拍,pai=1雙四拍,pai=2八拍unsigned char tt,k=0;unsigned char key;/定義按鍵變量unsigned char count;/定義數(shù)碼管顯示變量unsigned char i;/定義電機(jī)控制變量void port_init(void) porta = 0xff; ddra = 0x00; portb = 0xff; ddrb = 0x00; portc = 0x00; /m103 output only ddrc = 0xff; portd =
19、0x00; ddrd = 0xff; porte = 0x00; ddre = 0xff; portf = 0x00; ddrf = 0xff; portg = 0x00; ddrg = 0x00;/timer0 initialize - prescale:256/ wgm: ctc/ desired value: 100hz/ actual value: 99.522hz (-0.5%)void timer0_init(void) tccr0 = 0x00; /stop assr = 0x00; /set async mode tcnt0 = 0x64; /set count ocr0 =
20、0x9c; unsigned char timer0=0;#pragma interrupt_handler timer0_comp_isr:16void timer0_comp_isr(void) /compare occured tcnt0=ocr0 tcnt0 = 0x64; ocr0 = 0x9c; timer0+; if(timer0=20) timer0=0; i+; count+; portf=d4flag+paii%tt; /電機(jī)按選擇的運(yùn)行方式運(yùn)轉(zhuǎn) if(i=1000) i=0; if(count=1000)count=0; /timer2 initialize - pres
21、cale:256/ wgm: normal/ desired value: 100hz/ actual value: 100.160hz (0.2%)/call this routine to initialize all peripheralsvoid init_devices(void) /stop errant interrupts until set up cli(); /disable all interrupts xdiv = 0x00; /xtal divider xmcra = 0x00; /external memory port_init(); timer0_init();
22、 mcucr = 0x00; eicra = 0x00; /extended ext ints eicrb = 0x00; /extended ext ints eimsk = 0x00; timsk = 0x82; /timer interrupt sources etimsk = 0x00; /extended timer interrupt sources sei(); /re-enable interrupts /all peripherals are now initializedvoid display(void) start(); porte=scank; / 選定數(shù)碼管 swi
23、tch(k) case 0 : portd=seven_segcount%10; / 碼管顯示步數(shù)的個位 break; case 1 : portd=seven_seg(count/10)%10;/ 碼管顯示步數(shù)的十位 break; case 2 : portd=seven_seg(count/100)%10;/ 碼管顯示步數(shù)的百位 break; case 3 : portd=seven_segcount/1000; / 碼管顯示步數(shù)的千位 break; k+;if(k=4) k=0; delay(30000,30000); / 延時key=pinb; / 讀pb口狀態(tài) if(key=0xff)count=0; tccr0 = 0x00;/stopvoid delay(int d1,int d2)/*延時子函數(shù)*/ unsigned char i,j;i=d1;while(i-) j=d2; while(j-); /*電機(jī)運(yùn)行方式選擇子程序*/unsigned char j;start()key=pinb; /讀pb口狀態(tài)if(key=0xfe) / 如果開關(guān)鍵按下,執(zhí)行下面的程序 j
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩老師發(fā)言稿14篇
- 安全主題教育活動方案
- 汽車租賃服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 連云港做實“一帶一路交匯點(diǎn)”建設(shè)的對策思考
- 公司財務(wù)知識分享
- 基于生物信息學(xué)探索妊娠期糖尿病與尿苷代謝相關(guān)的關(guān)鍵基因
- 《駱駝祥子》 上課課件
- 二零二五版企業(yè)向個人發(fā)放汽車貸款合同示例3篇
- 科創(chuàng)孵化器項目融資報告
- 建立強(qiáng)大的醫(yī)院管理團(tuán)隊
- 2024-2025學(xué)年人教版三年級(上)英語寒假作業(yè)(九)
- 《招標(biāo)投標(biāo)法》考試題庫200題(含答案)
- 人教版2024新版七年級上冊數(shù)學(xué)第六章幾何圖形初步學(xué)業(yè)質(zhì)量測試卷(含答案)
- 小學(xué)數(shù)學(xué)五年級上冊奧數(shù)應(yīng)用題100道(含答案)
- 2023年漢中市人民政府國有資產(chǎn)監(jiān)督管理委員會公務(wù)員考試《行政職業(yè)能力測驗》歷年真題及詳解
- 《樹立正確的“三觀”》班會課件
- 招聘專員轉(zhuǎn)正述職報告
- 大學(xué)生文學(xué)常識知識競賽考試題庫500題(含答案)
- 太原頭腦外賣營銷方案
- JBT 7041.1-2023 液壓泵 第1部分:葉片泵 (正式版)
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
評論
0/150
提交評論