單片機控制步進電機
步進電機是壹種常見的機電控制執行器,並且其使用電脈沖轉化為角位移,通俗地說:當步進驅動器的脈沖信號,它就驅動步進電機按設定的方向轉動壹個固定的角度(步距角)。可以控制的控制的脈沖數,即角位移量,從而達到準確定位的目的,同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。
對步進電機的步進馬達常識分為三種:永久磁鐵(PM),反應式(VR)和混合型(HB),永磁步進壹般為兩相,轉矩和體積是更小的步進角為7.5度或15度,反應步進壹般為三相,高轉矩輸出,步距角為1.5度,但大的噪音和振動。在歐洲和美國等發達國家已在上世紀80年代淘汰的混合式步進意味著永久磁鐵和反應式的優點相結合的。它由兩相和五相:兩相步進角壹般為1.8度和五相步進角壹般為0.72度。步進電機是使用最廣泛的。
永磁步進電機控制
以下業余電子愛好者永磁步進電機為例,介紹了如何使用步進電機控制。 />圖1是35BY永磁式步進電機的外部視圖,圖2是電動機的接線圖,可以看出,從該圖中,***有四組電機的線圈,其中壹個端點的四組線圈壹起線索,這樣壹***有五個領先。要使用步進電機轉動,就可以輪流到每個終端通電。 COM端子C,只要AC,C,BC,C,打開電源就能驅動步進電機的操作,權力的方式可以有很多種COM端接正電源,只要認定為開關元件(如晶體管),A,B,交替接地。
下表列出了壹些典型的電機參數:
表1 35BY48S03型壹步壹步的機械和電氣機器參數型號步距角相電壓電流電阻最大靜轉矩定位轉矩的慣性矩35BY48S03 7.5 4 12 0.26 47 180 65 2.5
使用這些參數,這是容易設計的控制電路,由於工作電壓為12V,最大電流為0.26A開路輸出與達林頓驅動器(ULN2003)作為壹個驅動器,P1.4 - P1.7來控制各線圈的導通和關閉,在圖3所示的電路。啟動,P1.4到P1.7高,反過來P1.4-P1.7為低電平以驅動步進電機運行時,要註意,然後切換到前面的輸出引腳變為高電平。如果妳想改變電機的旋轉速度,只要兩者之間的打開時間的變化,來改變電機的旋轉方向,只要妳改變每個線圈導通的順序。
圖1 35BY48S03型步進電機外形圖
圖2 35BY48S03型步進電機接線圖
圖3單芯片步進電機控制35BY48S03電路圖
III。
要求步進電機驅動器實例:控制電路如圖3所示,開機後,電機不轉,按下啟動按鈕,電機在25轉/分鐘的速度旋轉,按加號鍵的速度增加,按減號鍵,較低的速度,最高速度為100轉/分,最低傳輸帶25轉/分,按下“停止”按鈕來停止電機。速度值?需要在數字顯示。
1。分析
根據上述的分析,變化速度,只要的變化P1.0到P1.3旋轉的變為低電平,符合要求的,不應該被使用的時間延遲來實現,因為它可能會影響其它功能。這裏是正規的方式。首先,計算出固定的時間。
的要求,最低轉速為25轉/分鐘,步進電機的步距角為7.5,每1個星期的48個脈沖,即,當為1200脈沖/分,相當的最低速度要求在50毫秒/脈沖。在最高速度為100轉/分,即48000脈沖/分,相當於12.5mS的/脈沖的要求。下表中列出
表
步進電機的轉速和定時器定時常數關系速度單步時間(我們)TH1 TL1實際時間(我們)
25 50000 76 0 49996.8 26 48077 82 236 4807 4.18
27 46296 89 86 46292.61
28 44643 95 73 44640.155
? ............ 100 12500 211 0 12499.2
表不僅計算TH1和TL1,但也定時常數,壹個真正的定時時間,根據該計算值來估算實際速度與理論速度的誤差值的計算出來的。
表TH1和TL1計算的是基於定時,定時這裏使用的是初始晶體11.0592M。如上表所示,程序並不難實現,使用定時器/計數器T1定時器定時時間到後切換輸出引腳。
2。計劃,以實現
定義DSB-1A實驗板S1啟動按鈕,S2為停止按鈕加1鍵,S3,S4減去1按鈕,程序如下:
startend位01H;啟動和停止標誌
MinSpd EQU 25;起始轉速
MaxSpd EQU 100;最高轉速
速度?DATA 23H流量統計
DjCount數據24小時值控制電機的輸出最初的11110 111
隱藏EQU 10H;消隱代碼
計數器數據57H;計數器
DISPBUF數據58H;顯示緩沖區
ORG 0000H
AJMP MAIN
ORG 000BH
JMP DISP
ORG 001BH
JMP DJZD
ORG 30H
MAIN:
MOV SP,#5FH
MOV P1,#0FFH
MOV A,#隱藏
MOV DispBuf,A
MOV DispBuf +1,壹個
MOV DispBuf +2,A
MOV DjCount,#11110111B
MOV速度,#MinSpd;開始的自轉速度被送入計數器
CLR startend失速狀態
MOV TMOD,#00010001B;
MOV TH0,#高(65536 -3000) MOV TL0,#LOW(65536-3000)
MOV TH1,#0FFH;
MOV TL1,#0FFH
SETB TR0
SETB EA SETB ET0 SETB ET1
LOOP:ACALL鍵;
JNB F0鍵盤程序m_NEXT1無鑰匙繼續
由ACALL和KEYPROC的;
m_NEXT1否則鍵盤處理程序被調用:
MOV A,速度?
MOV B,#10
DIV AB
MOV DispBuf +5,B,最低位
MOV B,# 10
DIV AB
MOV DispBuf +4乙
MOV DispBuf +3 A
JB startend,其中m_Next2
CLR TR1;關閉電機
JMP LOOP
ORL P1,#11110000B
m_Next2的:
SETB TR1;啟動電機
AJMP LOOP;主程序年底
; --- ------------------------------------ /> D10ms的:
? ?
---------延時程序,鍵盤處理呼叫
KEYPROC的:
MOV A,B;訪問鍵
JB的ACC.2的,啟閉的關鍵代碼分析,新聞,該位是1
JB ACC.3 KeySty
JB ACC.4,UpSpd
JB ACC.5 DowSpd的
AJMP <br KEY_RET啟閉的
SETB StartEnd開始
AJMP KEY_RET
KeySty:
CLR StartEnd;停止
AJMP KEY_RET
UpSpd :
INC。速度;
MOV A,SPEED
CJNE A#MaxSpd的的在K1;
DEC速度數量最多的零下1,旁邊的承諾仍然是
K1值:
AJMP KEY_RET
DowSpd: DEC SPEED
MOV A,SPEED
CJNE A,#MAXSPD,KEY_RET範圍(尚未達到最大值),返回
MOV速度#MinSpd;
KEY_RET:
RET
KEY:
? ?訪問重點項目
RET的
DjZd:電動機的速度控制,定時器T1
PUSH ACC PUSH PSW的
MOV A,速度?
SUBB A ,#MinSpd;少基線
MOV DPTR,#DJH
MOVC A,_at_ A + DPTR
MOV TH1,A
MOV A,速度的?
SUBB A ,#MinSpd
MOV DPTR,#DJL
MOVC A,@ A + DPTR
MOV TL1,A MOV A,DjCount
CPLá
魔術P1,
MOV A,DjCount
JNB ACC.7,d_Next1
JMP d_Next2
d_Next1:
MOV DjCount,#11110111B
d_Next2:<BR / MOV A,DjCount
RLá
MOV DjCount,A;恢復
ANL P1,A POP PSW
POP ACC
RETI DJH:DB 76,82,89,95,100,106,110,115,119,123,12中......
DJL:DB 0,236,86,73,212,0,214,96,163,165
? ?
DISP:顯示程序
POP PSW
POP ACC。
? ?
RETI
BitTab:DB 7FH,0BFH 0DFH 0EFH,0F7H,0FBH
DISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H, 88H,83H,0C6H,0A1H,86H,8EH,0FFH完
3。程序分析
這個程序是主程序從鍵盤,監控程序,步進電機驅動器三部分組成,主程序首先初始化變量顯示三個消隱,每個引腳步進電機驅動器是高輸出,然後調用鍵盤程序,並作出判斷,如果壹個鍵被按下,鍵盤處理程序被調用時,或直接到下壹步驟。下壹個步驟是到顯示緩沖區的當前速度值轉換為BCD碼;的判斷位變量StartEnd的,“1”或“0”,如果它是“1”時,定時器T1是開放的,否則關閉的定時為T1,為了防止長期斷電相線圈時,關閉定時器T1,P1.0到P1.3設置高。在這壹點上,主程序結束。這裏為簡便起見,有沒有高的“0”消隱速度為10轉/分,“010”,讀者可以添加自己的代碼來處理這個工作。
步進電機驅動器,定時器T1中斷服務程序,從上述的分析,每壹個固定的時間到達後,連接到P1.0到P1.3反過來,壹個變量後DjCntr來實現這壹功能的程度,在主程序的初始化,該變量的初始值11110111B到定時器中斷被使用時,發送的變量刪除ACC累加器,並在累加器中的左移位,因此,其值將變為11101111,然後和P1“和” P1.4輸出低電平,使第二進入中斷時,第壹否定的數量0001 0000,然後P1的數量“或”因此,P1.4輸出高,關斷相應的線圈,則多個再取出來,左移位,即1110,1111右移11011111,P1的數量“和”該P1.5輸出低,等等,P1.7P1.4回路輸出低電平。當該數據變為01111111,需要做出相應的,重新變回數據為第二個周期,讀者自己分析了相關代碼到11110111。
定時的是如何確定的?這裏是壹個查表的方法,首先每個速度TH和TL值?使用Excel計算,然後被放置在DJH和DJL表,進入T1中斷服務程序,變速速度的價值?進入累加器ACC,然後減去基25,其基地從0開始計數,然後查表,到TH1和TL1的復位時序最初目的。
閱讀這部分內容後,讀者本身了以下工作:
1。改變程序S1被定義為“開始/停止”,和S2被定義為“方向”,按下S2開關電動機旋轉的方向。
2。改變程序,需要從1到100的速度。
3。改變程序實現第壹個無效零消隱。