新聞中心

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

        基于proteus的步進電機控制

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

        本文引用地址:http://www.104case.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/脈沖。可以列出下表:

        表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 ;否則調(diào)用鍵盤處理程序

        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ū)

        關閉
        主站蜘蛛池模板: 色达县| 南江县| 玉龙| 兖州市| 志丹县| 泗水县| 东乌珠穆沁旗| 襄垣县| 贡山| 安义县| 墨玉县| 温州市| 南乐县| 泾源县| 黔南| 文化| 普兰店市| 茶陵县| 株洲县| 武隆县| 珠海市| 安顺市| 东源县| 马龙县| 丰城市| 乌鲁木齐市| 加查县| 江油市| 临泉县| 乡城县| 昭觉县| 太仓市| 曲水县| 宁武县| 洪雅县| 平定县| 临清市| 文登市| 西平县| 阳西县| 长葛市|