新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機控制步進電機驅動器原理

        單片機控制步進電機驅動器原理

        作者: 時間:2011-10-21 來源:網絡 收藏

        原理

        步進電機在控制系統中具有廣泛的應用。它可以把脈沖信號轉換成角位移,并且可用作電磁制動輪、電磁差分器、或角位移發生器等。

        有時從一些舊設備上拆下的步進電機(這種電機一般沒有損壞)要改作它用,一般需自己設計驅動器。本文介紹的就是為從一日本產舊式打印機上拆下的步進電機而設計的驅動器。

        本文先介紹該步進電機的工作原理,然后介紹了其驅動器的軟、硬件設計。

        1. 步進電機的工作原理

        該步進電機為一四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖。

        四相步進電機步進示意圖

        圖1 四相步進電機步進示意圖

        開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號齒對齊,同時,轉子的1、4號齒就和C、D相繞組磁極產生錯齒,2、5號齒就和D、A相繞組磁極產生錯齒。

        當開關SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉子轉動,1、4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產生錯齒,2、5號齒就和A、D相繞組磁極產生錯齒。依次類推,A、B、C、D四相繞組輪流供電,則轉子會沿著A、B、C、D方向轉動。

        四相步進電機按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。

        單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖2.a、b、c所示:

        步進電機工作時序波形圖

        a. 單四拍 b. 雙四拍 c八拍

        圖2.步進電機工作時序波形圖

        2.基于AT89C2051的系統電路原理

        系統電路原理如圖3:

        步進電機驅動器系統電路原理圖

        圖3 步進電機驅動器系統電路原理圖

        AT89C2051將控制脈沖從P1口的P1.4~P1.7輸出,經74LS14反相后進入9014,經9014放大后控制光電開關,光電隔離后,由功率管TIP122將脈沖信號進行電壓和電流放大,驅動步進電機的各相繞組。使步進電機隨著不同的脈沖信號分別作正轉、反轉、加速、減速和停止等動作。圖中L1為步進電機的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下盡量減小AT89C2051對上位機脈沖信號周期的影響。

        圖3中的RL1~RL4為繞組內阻,50Ω電阻是一外接電阻,起限流作用,也是一個改善回路時間常數的元件。D1~D4為續流二極管,使電機繞組產生的反電動勢通過續流二極管(D1~D4)而衰減掉,從而保護了功率管TIP122不受損壞。

        在50Ω外接電阻上并聯一個200μF電容,可以改善注入步進電機繞組的電流脈沖前沿,提高了步進電機的高頻性能。與續流二極管串聯的200Ω電阻可減小回路的放電時間常數,使繞組中電流脈沖的后沿變陡,電流下降時間變小,也起到提高高頻工作性能的作用。

        3.軟件設計

        該驅動器根據撥碼開關KX、KY的不同組合有三種工作方式供選擇:

        方式1為中斷方式:P3.5(INT1)為步進脈沖輸入端,P3.7為正反轉脈沖輸入端。上位機(PC機或單片機)與驅動器僅以2條線相連。

        方式2為串行通訊方式:上位機(PC機或單片機)將控制命令發送給驅動器,驅動器根據控制命令自行完成有關控制過程。

        方式3為撥碼開關控制方式:通過K1~K5的不同組合,直接控制步進電機。

        當上電或按下復位鍵KR后,AT89C2051先檢測撥碼開關KX、KY的狀態,根據KX、KY 的不同組合,進入不同的工作方式。以下給出方式1的程序流程框圖與源程序。

        在程序的編制中,要特別注意步進電機在換向時的處理。為使步進電機在換向時能平滑過渡,不至于產生錯步,應在每一步中設置標志位。其中20H單元的各位為步進電機正轉標志位;21H單元各位為反轉標志位。在正轉時,不僅給正轉標志位賦值,也同時給反轉標志位賦值;在反轉時也如此。這樣,當步進電機換向時,就可以上一次的位置作為起點反向運動,避免了電機換向時產生錯步。

        方式1程序框圖

        圖4 方式1程序框圖

        方式1源程序:

        MOV 20H,#00H ;20H單元置初值,電機正轉位置指針

        MOV 21H,#00H ;21H單元置初值,電機反轉位置指針

        MOV P1,#0C0H ;P1口置初值,防止電機上電短路

        MOV TMOD,#60H ;T1計數器置初值,開中斷

        MOV TL1,#0FFH

        MOV TH1,#0FFH

        SETB ET1

        SETB EA

        SETB TR1

        SJMP $

        ;***********計數器1中斷程序************

        IT1P: JB P3.7,FAN ;電機正、反轉指針

        ;*************電機正轉*****************

        JB 00H,LOOP0

        JB 01H,LOOP1

        JB 02H,LOOP2

        JB 03H,LOOP3

        JB 04H,LOOP4

        JB 05H,LOOP5

        JB 06H,LOOP6

        JB 07H,LOOP7

        LOOP0: MOV P1,#0D0H

        MOV 20H,#02H

        MOV 21H,#40H

        AJMP QUIT

        LOOP1: MOV P1,#090H

        MOV 20H,#04H

        MOV 21H,#20H

        AJMP QUIT

        LOOP2: MOV P1,#0B0H

        MOV 20H,#08H

        MOV 21H,#10H

        AJMP QUIT

        LOOP3: MOV P1,#030H

        MOV 20H,#10H

        MOV 21H,#08H

        AJMP QUIT

        LOOP4: MOV P1,#070H

        MOV 20H,#20H

        MOV 21H,#04H

        AJMP QUIT

        LOOP5: MOV P1,#060H

        MOV 20H,#40H

        MOV 21H,#02H

        AJMP QUIT

        LOOP6: MOV P1,#0E0H

        MOV 20H,#80H

        MOV 21H,#01H

        AJMP QUIT

        LOOP7: MOV P1,#0C0H

        MOV ; 20H,#01H

        MOV 21H,#80H

        AJMP QUIT

        ;***************電機反轉*****************

        FAN: JB 08H,LOOQ0

        JB 09H,LOOQ1

        JB 0AH,LOOQ2

        JB 0BH,LOOQ3

        JB 0CH,LOOQ4

        JB 0DH,LOOQ5

        JB 0EH,LOOQ6

        JB 0FH,LOOQ7

        LOOQ0: MOV P1,#0A0H

        MOV 21H,#02H

        MOV 20H,#40H

        AJMP QUIT

        LOOQ1: MOV P1,#0E0H

        MOV 21H,#04H

        MOV 20H,#20H

        AJMP QUIT

        LOOQ2: MOV P1,#0C0H

        MOV 21H,#08H

        MOV 20H,#10H

        AJMP QUIT

        LOOQ3: MOV P1,#0D0H

        MOV 21H,#10H

        MOV 20H,#08H

        AJMP QUIT

        LOOQ4: MOV P1,#050H

        MOV 21H,#20H

        MOV 20H,#04H

        AJMP QUIT

        LOOQ5: MOV P1,#070H

        MOV 21H,#40H

        MOV 20H,#02H

        AJMP QUIT

        LOOQ6: MOV P1,#030H

        MOV 21H,#80H

        MOV 20H,#01H

        AJMP QUIT

        LOOQ7: MOV P1,#0B0H

        MOV 21H,#01H

        MOV 20H,#80H

        QUIT: RETI

        END

        4.結論

        該驅動器經實驗驗證能驅動0.5N.m的步進電機。將驅動部分的電阻、電容及續流二極管的有關參數加以調整,可驅動1.2N.m的步進電機。該驅動器電路簡單可靠,結構緊湊,對于I/O口線與單片機資源緊張的系統來說特別適用。

        光電開關相關文章:光電開關原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 锦州市| 通山县| 石嘴山市| 新余市| 大洼县| 格尔木市| 弋阳县| 集安市| 三穗县| 怀来县| 河源市| 扎赉特旗| 茂名市| 西峡县| 江华| 唐海县| 乌拉特前旗| 易门县| 德令哈市| 永昌县| 马龙县| 荣成市| 赣榆县| 朝阳县| 康保县| 大足县| 晋江市| 托里县| 隆回县| 阿拉善盟| 永吉县| 普格县| 海盐县| 米脂县| 浙江省| 万源市| 板桥市| 霞浦县| 六安市| 剑阁县| 平昌县|