新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于proteus的步進電機控制

基于proteus的步進電機控制

作者: 時間:2016-11-26 來源:網絡 收藏
步進電機是機電控制中一種常用的執(zhí)行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數(shù)即可以控制角位移量,從而達到準確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

本文引用地址:http://2s4d.com/article/201611/321751.htm

一、步進電機常識

常見的步進電機分三種:永磁式(PM),反應式(VR)和混合式(HB),永磁式步進一般為兩相,轉矩和體積較小,步進角一般為7.5度或15度;反應式步進一般為三相,可實現(xiàn)大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。在歐美等發(fā)達國家80年代已被淘汰;混合式步進是指混合了永磁式和反應式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛。

二、永磁式步進電機的控制

  電子愛好者業(yè)余制作中常用的是永磁式步進電機。

圖1 35BY48S03型步進電機的接線圖

圖1是該電機的接線圖,從圖中可以看出,電機共有四組線圈,四組線圈的一個端點連在一起引出,這樣一共有5根引出線。要使用步進電機轉動,只要輪流給各引出端通電即可。將COM端標識為C,只要AC、/AC、BC、/BC,輪流加電就能驅動步進電機運轉,加電的方式可以有多種,如果將COM端接正電源,那么只要用開關元件(如三極管),將A、/A、B、/B輪流接地。

下表列出了該電機的一些典型參數(shù):

表1 35BY48S03型步機電機參數(shù)

型號

步距角

相數(shù)

電壓

電流

電阻

最大靜轉距

定位轉距

轉動慣量

35BY48S03

7.5

4

12

0.26

47

180

65

2.5

有了這些參數(shù),不難設計出控制電路,因其工作電壓為12V,最大電流為0.26A,因此用一塊開路輸出達林頓驅動器(ULN2003)來作為驅動,通過P1.4~P1.7來控制各線圈的接通與切斷,電路如圖所示。

圖2 單片機控制35BY48S03型步進電機的電路原理圖

開機時,P1.4~P1.7均為高電平,依次將P1.4~P1.7切換為低電平即可驅動步進電機運行,注意在切換之前將前一個輸出引腳變?yōu)楦唠娖健H绻淖冸姍C的轉動速度只要改變兩次接通之間的時間,而要改變電機的轉動方向,只要改變各線圈接通的順序。

三、步進電機的驅動實例

要求:控制電路如圖2所示,開機后,電機不轉,按下啟動鍵,電機旋轉,速度為25轉/分,按下加1鍵,速度增加,按下減1鍵,速度降低,最高速度為100轉/分,最低轉帶為25轉/分,按下停止鍵,電機停轉。速度值要求在數(shù)碼管上顯示出來。

1、要求分析

按上面的分析,改變轉速,只要改變P1.0~P1.3輪流變低電平的時間即可達到要求,這個時間不應采用延時來實現(xiàn),因為會影響到其他功能的實現(xiàn)。這里以定時的方式來實現(xiàn)。下面首先計算一下定時時間。

按要求,最低轉速為25轉/分,而上述步進電機的步距角為7.5,即每48個脈沖為1周,即在最低轉速時,要求為1200脈沖/分,相當于50ms/脈沖。而在最高轉速時,要求為100轉/分,即48000脈沖/分,相當于12.5ms/脈沖??梢粤谐鱿卤恚?/p>

表2 步進電機轉速與定時器定時常數(shù)關系

速度

單步時間(us)

TH1

TL1

實際定時(us)

25

50000

76

0

49996.8

26

48077

82

236

48074.18

27

46296

89

86

46292.61

28

44643

95

73

44640.155

100

12500

211

0

12499.2

表中不僅計算出了TH1和TL1,而且還計算出了在這個定時常數(shù)下,真實的定時時間,可以根據(jù)這個計算值來估算真實速度與理論速度的誤差值。

表中TH1和TL1是根據(jù)定時時間算出來的定時初值,這里用到的晶振是11.0592M。有了上述表格,程序就不難實現(xiàn)了,使用定時/計數(shù)器T1為定時器,定時時間到后切換輸出腳即可。

2、程序實現(xiàn)

定義DSB-1A實驗板的S1為啟動鍵,S2為停止鍵,S3為加1鍵,S4為減1鍵,程序如下:

StartEndbit01H;起動及停止標志

MinSpdEQU25;起始轉動速度

MaxSpdEQU100;最高轉動速度

SpeedDATA23H;流動速度計數(shù)

DjCountDATA24H;控制電機輸出的一個值,初始為11110 111

HiddenEQU10H;消隱碼

CounterDATA57H;顯示計數(shù)器

DISPBUFDATA58H;顯示緩沖區(qū)

ORG0000H

AJMPMAIN

ORG 000BH

JMP DISP

ORG 001BH

JMP DJZD

ORG30H

MAIN:

MOVSP,#5FH

MOVP1,#0FFH

MOV A,#Hidden

MOV DispBuf,A

MOV DispBuf+1,A

MOV DispBuf+2,A

MOV DjCount,#11110111B

MOVSPEED,#MinSpd;起始轉動速度送入計數(shù)器

CLRStartEnd;停轉狀態(tài)

MOV TMOD,#00010001B ;

MOV TH0,#HIGH(65536-3000)

MOV TL0,#LOW(65536-3000)

MOV TH1,#0FFH;

MOV TL1,#0FFH

SETB TR0

SETB EA

SETB ET0

SETB ET1

LOOP: ACALLKEY;鍵盤程序

JNBF0,m_NEXT1 ;無鍵繼續(xù)

ACALLKEYPROC ;否則調用鍵盤處理程序

m_NEXT1:

MOV A,Speed

MOV B,#10

DIV AB

MOV DispBuf+5,B ;最低位

MOV B,#10

DIV AB

MOV DispBuf+4,B

MOV DispBuf+3,A

JB StartEnd,m_Next2

CLR TR1 ;關閉電機

ORL P1,#11110000B

JMP LOOP

m_Next2:

SETB TR1 ;啟動電機

AJMPLOOP ;主程序結束


上一頁 1 2 下一頁

評論


技術專區(qū)

關閉