版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ī)快兩年了,不過只是非常業(yè)余的興趣,實(shí)踐卻不多,到現(xiàn)在還算是個(gè)初學(xué)者吧。這幾天給自己的任務(wù)就是搞定步進(jìn)電機(jī)的單片機(jī)控制。以前曾看過有關(guān)步進(jìn)電機(jī)原理和控制的資料,畢竟自己沒有做過,對(duì)其具體原理還不是很清楚。今天從淘寶上買了一個(gè)EPSON的UMX-1型步進(jìn)電機(jī),此步進(jìn)電機(jī)為雙極性四相(后來才知道,四相和兩相步進(jìn)沒什么區(qū)別的!),接線共有六根,外形如下圖所示:拿到步進(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è)
2、角度,來回五次,電機(jī)剛好轉(zhuǎn)一圈,說明此步進(jìn)電機(jī)的步進(jìn)角度為360/(4×5)18度。地線與四線接觸的順序相反,電機(jī)的轉(zhuǎn)向也相反。如果用單片機(jī)來控制此步進(jìn)電機(jī),則只需分別依次給四線一定時(shí)間的脈沖電流,電機(jī)便可連續(xù)轉(zhuǎn)動(dòng)起來。通過改變脈沖電流的時(shí)間間隔,就可以實(shí)現(xiàn)對(duì)轉(zhuǎn)速的控制;通過改變給四線脈沖電流的順序,則可實(shí)現(xiàn)對(duì)轉(zhuǎn)向的控制。所以,設(shè)計(jì)了如下電路圖:C51程序代碼為:代碼一#include <AT89X51.h>static unsigned int count;static unsigned int endcount;void del
3、ay();void main(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;
4、; /定時(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();goto star
5、trun;/定時(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)行,步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)起來了,初步告捷!不過,上面的程序還只是實(shí)現(xiàn)了步進(jìn)電機(jī)的初步控制,速度和方向的控制還不夠靈活,另外,由于沒有利用步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)電機(jī)的
6、步進(jìn)角度為18度。 二手步進(jìn)電機(jī)的要注意,有些退磁比較嚴(yán)重,這個(gè)店還是比較好的,加到12V,步進(jìn)的力氣很大,用手?jǐn)Q不?。『呛?,算是幫這個(gè)店做個(gè)廣告了O(_)O所以,我將程序代碼改進(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);v
7、oid main(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;
8、160;/定時(shí)器0中斷允許TH0 = 0xFE; TL0 = 0x0C; /設(shè)定時(shí)每隔0.5ms中斷一次 TR0 = 1; /開始計(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、160;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、 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、0; 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
13、= 1; 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)
14、0; step_index=0;else step_index-; if (step_index<0) step_index=7; 改進(jìn)的代碼能實(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度
15、,低速運(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)志s
16、tatic int speedlevel; /步進(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(voi
17、d) 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;
18、;/定時(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;
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) spcount = speedlevel;
20、60; 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 = 0; return;switch(step_index)case 0
21、: /0 P1_0 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 0; break;case 1: /0、1 P1_0 = 1; P1_1 = 1; P1_2 = 0; P1_3 = 0;
22、60; 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_1 = 1; P1_2 = 1;
23、; 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; P1_1 = 0;
24、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 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 1;if (turn=0) step_index+;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生物制藥工藝優(yōu)化報(bào)告
- 2025年光伏組件回收十年趨勢(shì)報(bào)告
- 2025年人工智能在制造業(yè)智能排產(chǎn)創(chuàng)新報(bào)告
- 2025年數(shù)據(jù)中心液冷散熱技術(shù)市場(chǎng)分析報(bào)告
- 2025年新能源電動(dòng)汽車市場(chǎng)趨勢(shì)創(chuàng)新報(bào)告
- 遼寧2025年中國農(nóng)業(yè)銀行遼寧省分行春季招聘248人筆試歷年參考題庫附帶答案詳解
- 2026年及未來5年中國激光雙束光纖市場(chǎng)前景預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 江蘇2025年江蘇興化市公安局招聘第二批警務(wù)輔助人員42人筆試歷年參考題庫附帶答案詳解
- 寧波2025浙江寧波市海曙區(qū)教育局招聘“專曙優(yōu)師”教育人才83人(第二批)筆試歷年參考題庫附帶答案詳解
- 吉林2025年水利部松遼水利委員會(huì)所屬事業(yè)單位招聘13人筆試歷年參考題庫附帶答案詳解
- 建筑施工預(yù)算評(píng)審報(bào)告
- 唐山首鋼馬蘭莊鐵礦有限責(zé)任公司礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 國際漢語教師求職簡(jiǎn)歷
- 個(gè)人營(yíng)業(yè)執(zhí)照注銷委托書范文
- 產(chǎn)品外協(xié)加工作業(yè)流程
- 護(hù)理學(xué)第三章 第四節(jié) 人體力學(xué)在護(hù)理工作的應(yīng)用
- 工程力學(xué)試題和答案解析匯總
- GB/T 4677-2002印制板測(cè)試方法
- GB/T 12464-2016普通木箱
- 主顧開拓的方法與技巧
- CB/T 3577-1994船舶電纜修理技術(shù)要求
評(píng)論
0/150
提交評(píng)論