在本文中,講解了怎么用8051單片機(jī)控制步進(jìn)電機(jī)。步進(jìn)電機(jī)廣泛用于工業(yè)、醫(yī)療、消費(fèi)電子應(yīng)用。簡而言之,它用于任何需要物體精確旋轉(zhuǎn)或定位的地方。
一、什么是步進(jìn)電機(jī)?
步進(jìn)電機(jī)是一種無刷電機(jī),可將電脈沖轉(zhuǎn)換為機(jī)械旋轉(zhuǎn)。顧名思義,它根據(jù)輸入脈沖逐步旋轉(zhuǎn)。步進(jìn)電機(jī)通常具有多個勵磁線圈(相)和帶齒轉(zhuǎn)子。電機(jī)的步長由轉(zhuǎn)子上的相數(shù)和齒數(shù)決定。步長是轉(zhuǎn)子在一步中的角位移。如果步進(jìn)電機(jī)有4相50個齒,則需要50×4=200步才能旋轉(zhuǎn)一整圈。所以步距角將為360/200=1.8°。
我們使用的步進(jìn)電機(jī)有4極和一個1/64減速齒輪機(jī)構(gòu),用于增加扭矩。電機(jī)的步距角為5.64°。但考慮減速機(jī)時,輸出軸的步距角為5.64/64°。步進(jìn)電機(jī)的內(nèi)部示意圖如下:
步進(jìn)電機(jī)通過在給定時間內(nèi)一一打開各個相位來旋轉(zhuǎn)。序列如下圖所示:
二、原理圖
將步進(jìn)電機(jī)連接到8051的電路圖如上所示。P1.0、P1.1、P1.2、P1.3引腳分別用于控制步進(jìn)電機(jī)的A1、A2、A3、A4相。ULN2003用于驅(qū)動步進(jìn)電機(jī)的各個相位。ULN2003是一種達(dá)林頓晶體管陣列,用于驅(qū)動繼電器和電機(jī)等大電流負(fù)載。ULN2003有8個獨(dú)立的通道,每個通道的容量為1A。通道可以并聯(lián)以增加電流容量。每個通道都配有獨(dú)立的續(xù)流二極管。ULN2003工作在電流吸收模式。每個通道通過在相應(yīng)輸入處提供邏輯低電平來激活。例如,如果我們將ULN2003的引腳1設(shè)為低電平,則步進(jìn)電機(jī)的A1相被接通。
程序首先清除P1.0以激活步進(jìn)電機(jī)的第1相(A1)。該條件保持65毫秒,然后設(shè)置P1.0以停用電機(jī)的第1階段。然后對端口引腳P1.1到P1.3重復(fù)相同的過程,整個循環(huán)一遍又一遍地重復(fù),使電機(jī)順時針旋轉(zhuǎn)。
單片機(jī)的定時器0配置為模式1以產(chǎn)生65毫秒的延遲,65mS是每個控制脈沖的寬度。
三、程序代碼
A1 EQU P1.0
A2 EQU P1.1
A3 EQU P1.2
A4 EQU P1.3
ORG 00H
MOV TMOD,#00000001B
MAIN:
CLR A1
ACALL DELAY
SETB A1
CLR A2
ACALL DELAY
SETB A2
CLR A3
ACALL DELAY
SETB A3
CLR A4
ACALL DELAY
SETB A4
SJMP MAIN
DELAY:MOV R6,#1D
BACK: MOV TH0,#00000000B
MOV TL0,#00000000B
SETB TR0
HERE2: JNB TF0,HERE2
CLR TR0
CLR TF0
DJNZ R6,BACK
RET
-
單片機(jī)
+關(guān)注
關(guān)注
6042文章
44617瀏覽量
637632 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
151文章
3120瀏覽量
147751 -
8051單片機(jī)
+關(guān)注
關(guān)注
5文章
153瀏覽量
25550
發(fā)布評論請先 登錄
相關(guān)推薦
評論