步進電機需要提供具有一定驅動能力的脈沖信號才能正常工作,脈沖信號由單片機輸出的激勵信號經過脈沖分配產生。脈沖分配可以通過硬件模擬分配電路實現,也可以利用軟件方便地實現。一個完整的驅動電路不僅需要激勵信號,還需有足夠的功率。在一般的電路驅動中,需將由CPU產生的脈沖信號經過功率放大后,再接到步進電機輸入端。隨著大規模集成電路技術的發展,逐漸出現了很多專門用于步進電機控制的脈沖分配芯片,它們配合功率放大的驅動電路可以實現步進電機的驅動。
12.3.1 一般步進電機驅動電路
在專門的步進電機驅動集成芯片出現以前,一般都是采用電路來驅動步進電機工作。在電路設計中,必須要考慮的是驅動信號的分配和放大。在信號分配方面,采用的均是單片機統一分配的形式;在信號放大方面,則是由各種放大電路來完成的。下面介紹一種利用硬件電路連接而成的脈沖分配驅動電路。
1.電路驅動的工作原理
圖12-5所示是一個四相步進電機的驅動電路。A、B、C、D分別接到P1口的P1.4~P1.7。通過軟件控制一組脈沖序列,控制步進電機的轉速、方向和步距。
在步進電機的驅動線路中,主CPU發出的控制信號經U1放大,傳到復合三極管前一級的基極。若CPU送出的數據為0,則前級三極管BG5作為開關三極管不導通,BG1也處于截止狀態,電機內的線圈不得電;若CPU送出的數據為1,則前級三極管BG5的基極有了驅動電流,12V電壓經電機的線圈、限流電阻和三極管形成通路。在電路圖中的A、B、C、D分別代表電機內部的4個線圈,在驅動線中的R5~R8作為限流電阻來限制線圈中的電流值。在電阻和線圈兩側有并聯的單向二極管,當CPU信號由1跳變為0時,三極管截止,電機的線圈會產生很大的感應電動勢,這時線圈、限流電阻和單向二極管形成回路,保護三極管不被線圈的瞬時感應電動勢燒壞。二極管D1~D4也稱回流二極管,在選擇時要考慮到電源電壓及線圈電流。R1~R4和D1~D4組成一條支路,在對應的線圈突然不通電時能夠和線圈構成一組循環回路。該電阻的作用是分擔支路中的電壓,保護二極管。在每個集成放大器的輸出端接有一個LED,作為脈沖信號輸入的顯示器件。CPU送入的數據為0時,LED下端的電位也為低,LED被導通發光;CPU送入的數據為1時,LED的下端電位為高,LED無法導通,不發光。R9~R12為限流電阻,使三極管基極的流入電流不至于過大而燒毀。

圖12-5 基于復合三極管的四相步進電機驅動電路
在步進電機工作時,對P1口依次寫入1FH、3FH、5FH、7FH,電機正轉4步;對P1口依次寫入7FH、5FH、3FH、1FH,電機反轉4步。
2.控制程序
為方便初學者了解步進電機驅動電路的控制方式,對于每一種驅動電路都給出對應的控制參考程序。
電機正轉控制參考程序如下:
電機反轉控制參考程序如下:
該程序實現的是在工作時四相線圈中的每一相分別通電,即為四相四拍工作方式。可通過改變脈沖輸入方式來改變電機的工作狀態(如四相八拍工作方式)。
12.3.2 基于UCN5804芯片的步進電機驅動電路
隨著大規模集成電路技術的發展,越來越多的廠家生產出專門用于驅動步進電機的脈沖分配芯片,配合用于功率放大的驅動電路就可以實現步進電機的驅動。下面以UCN5804驅動芯片為例,介紹集成芯片驅動步進電機的工作原理。圖12-6所示為UCN5804芯片引腳圖。
1.UCN5804芯片引腳介紹
引腳1:對應四相脈沖輸出的B相。主CPU給UCN5804輸送脈沖,芯片按順序輸出A、B、C、D脈沖信號,該信號接到步進電機的脈沖輸入端。
引腳2:接+12V電源。
引腳3:對應四相脈沖輸出的D相。
引腳4:接地。
引腳5:接地。
引腳6:對應四相脈沖輸出的C相。
引腳7:接+12V電源。
引腳8:對應四相脈沖輸出的A相。
引腳9:控制電機脈沖輸出方式,若9腳為低電平,則脈沖每次輸出兩相脈沖信號
圖12-6 UCN5804芯片引腳圖
(AB-BC-CD-DA-AB),即主CPU每送入一個脈沖,芯片向電機輸出兩相電脈沖;若9腳為高電平,則芯片每次輸出兩相脈沖信號(A-B-C-D-A),即主CPU每送入一個脈沖,芯片向電機輸出兩相電脈沖。
引腳10:控制電機接收脈沖后的步長,若10腳為低電平,則芯片控制電機每步運行一整個步長,即芯片送出的脈沖順序為A-B-C-D-A或AB-BC-CD-DA-AB;若10腳為高電平,則芯片控制電機每步運行半個步長,即芯片送出的脈沖順序為A-AB-B-BC-C-CD-D-DA-A。
引腳11:5804芯片的脈沖輸入端,信號由主CPU送入。每送入一個信號,芯片送出一個控制信號。CPU不產生輸入信號時,芯片不產生輸出脈沖。
引腳12:接地。
引腳13:接地。
引腳14:控制電機的正反轉,若14腳為低電平,則電機正轉;若該腳為高電平,則電機反轉。
引腳15:5804芯片的片選信號,該腳為低時芯片可以工作,為高時芯片不工作。
引腳16:接+5V電源。
2.UCN5804芯片概述與工作特點
UCN5804芯片是一塊集成步進電機驅動芯片,它的輸出引腳可以接到步進電機的輸入端,直接驅動步進電機工作。其工作電路如圖12-7所示。在信號輸出端接一反向二極管后連接到步進電機上,芯片可以承受最大1.5A的反向電流以及最大35V的電壓。

圖12-7 基于UCN5804芯片的驅動電路圖
在實際應用中,UCN5804芯片有多種驅動工作方式,利用9腳和10腳的高低電平組合(見表12-1),可將四相步進電機的運行分為以下幾種方式。
表12-1 UCN5804芯片驅動方式真值表 (1)在單脈沖輸出狀態下,9腳為低電平,10腳為高電平,電機按四相四拍的工作方式(見表12-2)運行(A-B-C-D-A或A-D-C-B-A)。
表12-2 單相驅動脈沖順序(9腳=L,10腳=H) (2)在雙脈沖輸出狀態下,若9腳和10腳均為低電平,則電機按四相四拍的工作方式(見表12-3)運行(AB-BC-CD-DA-AB或AD-DC-CB-BA);若9腳為高電平,10腳為低電平,則步進電機將按四相八拍的工作方式(見表12-4)運行(A-AB-B-BC-C-CD-D-DA-A或A-DA-D-CD-C-BC-B-AB-A)。
表12-3 雙相驅動脈沖順序(9腳=L,10腳=L) 表12-4 單雙相半步驅動脈沖順序(9腳=H,10腳=L) UCN5804芯片驅動脈沖時序分配如圖12-8所示。

圖12-8 驅動脈沖時序
UCN5804芯片的連接電路以圖12-7為例:芯片的脈沖輸入端、方向控制、片選分別接到P1口的P1.0、P1.2、P1.3。根據電機運轉的實際需要,由主CPU送不同的控制字。在該電路中,電容C1和C2為去耦電容,濾除高頻干擾。R1和R2為大功率小阻值電阻,作用是保證步進電機足夠的驅動電流,同時電阻可以承受因其阻值過小而產生的大功率。V1~V4為4個二極管,分別與UCN5804芯片的脈沖輸出端反接,來傳導電機工作某一相工作時的反向電流。
3.控制程序
電機正轉控制程序如下:
電機反轉控制程序如下:
該程序可實現兩相脈沖驅動的四相四拍電機運轉方式。可以通過改變引腳的高低電位狀態來改變電機的工作方式,方便靈活,適合初學者學習。
12.3.3 基于ULN2003芯片的步進電機驅動電路
ULN2003是另一款電機脈沖分配芯片,由于其結構簡單,價格低廉,而且無需外接功率放大電路,因此也常用來作為步進電機的驅動芯片。
1.ULN2003芯片引腳介紹
ULN2003芯片引腳如圖12-9所示。

圖12-9 ULN2003芯片引腳圖
引腳1:CPU脈沖輸入端,端口對應一個信號輸出端。
引腳2:CPU脈沖輸入端。
引腳3:CPU脈沖輸入端。
引腳4:CPU脈沖輸入端。
引腳5:CPU脈沖輸入端。
引腳6:CPU脈沖輸入端。
引腳7:CPU脈沖輸入端。
引腳8:接地。
引腳9:該腳是內部7個續流二極管負極的公共端,各二極管的正極分別接各達林頓管的集電極。用于感性負載時,該腳接負載電源正極,實現續流作用。如果該腳接地,實際上就是達林頓管的集電極對地接通。
引腳10:脈沖信號輸出端,對應7腳信號輸入端。
引腳11:脈沖信號輸出端,對應6腳信號輸入端。
引腳12:脈沖信號輸出端,對應5腳信號輸入端。
引腳13:脈沖信號輸出端,對應4腳信號輸入端。
引腳14:脈沖信號輸出端,對應3腳信號輸入端。
引腳15:脈沖信號輸出端,對應2腳信號輸入端。
引腳16:脈沖信號輸出端,對應1腳信號輸入端。
ULN2003的內部結構可參見圖12-10。在ULN2003芯片內部為達林頓管陣列,其工作原理與上一節電路驅動相似。由于該電路為芯片的內部結構,僅供初學者理解芯片的工作方式用,在芯片使用時可以忽略。

圖12-10 ULN2003芯片內部結構 2.ULN2003芯片概述與特點
ULN2003芯片是高耐壓、大電流達林頓陣列,由7組達林頓晶體管陣列和相應的電阻網絡以及鉗位二極管網絡構成,具有同時驅動7組負載的能力,為單片雙極型大功率高速集成電路。功率電子電路大多要求具有大電流輸出能力,以便于驅動各種類型的負載。功率驅動電路是功率電子設備輸出電路的一個重要組成部分。ULN2003芯片高壓大電流達林頓晶體管陣列產品屬于可控大功率器件。
ULN2003芯片是可以專門用來驅動繼電器的芯片,甚至在芯片內部做了一個消線圈反電動勢的二極管。ULN2003芯片的輸出端允許通過電流200mA,飽和壓降約1V。輸出口的外接負載可根據以上參數估算。采用集電極開路輸出,輸出電流大,故可以直接驅動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅動低壓燈泡。硬件接線圖見圖12-11。

圖12-11 ULN2003芯片驅動電路(驅動口改P1口)
ULN2003芯片的每一對達林頓都串聯一個2.7k.的基極電阻,也可以不用限流電阻而直接由51的P口驅動。在5V的工作電壓下它能與TTL和CMOS電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。ULN2003芯片工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(有低電平輸入時,輸出為高電平)時承受50V的電壓,輸出還可以在高負載電流并行運行。
信號脈沖通過P1口送出,可經4.7k.上拉電阻接到ULN2003芯片的輸入端口。P1.4~P1.7分別對應ULN2003的1C、2C、3C、4C輸出端。在使用步進電機時,對P1口賦予不同的值來送出電機正轉或反轉的脈沖信號。
3.控制程序
電機正轉控制程序為:
電機反轉控制程序為:
該程序實現的也是分別驅動四相電機中的相鄰兩相線圈,使電機在雙脈沖驅動四相四拍方式下工作。通過改變CPU脈沖來控制電機的工作方式。
12.3.4 步進電機應用實例
在步進電機的實際應用中,總是通過CPU接收處理一些信號來控制電機的運動狀態。常見的如光線、溫濕度、水位等。這里以光作為CPU控制步進電機的信號為例。
采用對射光電開關作為光信號發射接收裝置。對射光電開關FS048W能夠發射出一束細小的光線,當光線碰到障礙物時反射回來,由光電開關的接收管接收。光電開關電路圖如圖12-12所示。
圖12-12 光電開關檢測電路圖
當接收管沒有接收到發射回來的光信號時,光電開關內部的感光三極管不導通,比較器的輸入端為高電位,比較器輸出點的電位為高(CPU接收信號為1);當接收管接收到發射回來的光信號時,光電開關內部的感光三極管導通,比較器的輸入端為低電位,比較器輸出點的電位為低(CPU接收信號為0)。由于光線照射到不同顏色上時會有不同的反射率,通過比較器反相輸入端電阻的調節,可以使光電開關在一定的距離上判斷出不同的顏色。如光線照射在白色物體上時,由于白色物體對光線的反射率高,反射回的光線強,接收管可以容易地接收到反射光線信號;相反的,光線照射到黑色物體上時,由于黑色物體的反射率較低,即有吸收光線的特性,反射光線很弱,在相同的距離上接收管無法接收到反射回來的微弱光信號。 將電機和對射光電開關組合使用,可以用于檢測執行機構及各種伺服機構。下面將以步進電機小汽車的循跡為例,介紹在實際應用中的電機工作特性。具體應用流程圖及程序見12.4節。
|