李 娟,馬利祥
(安徽信息工程學院電氣與電子工程學院,安徽 蕪湖 241199)
近年來,隨著電子技術的發展,直流電機的成本大大降低。由于直流電機具有優良的啟動、調速等性能,其應用越來越廣泛[1-5]。同時,直流電機還具有比較簡單的控制理論[6]。目前,直流電機調速已成為一項應用性很強的技術,用其設計的低成本、易攜帶的家用電器受到歡迎[7-11]。傳統直流電機調速控制方法存在電機調速時穩定性差的缺點[12-15]。而現在雖然有大量先進的控制方法,例如滑模控制、模糊控制、神經網絡控制、遺傳算法控制以及灰色理論控制等[16],但這些方法的計算量大、過程相對復雜。因此,本文設計了一種基于51 單片機的直流電機調速控制和測速系統。該系統不僅穩定性好,而且電路簡單、可靠性強。
本文所設計的基于51 單片機的直流電機調速控制和測速系統主要包括單片機控制部分、顯示電路、按鍵電路、霍爾元件測速電路、電機驅動電路、復位電路和晶振電路。
本設計以STC89C51 單片機最小系統為控制核心,通過數碼管來顯示電機的轉速擋位和轉速,由PNP 型三極管8550 驅動數碼管,采用4 個獨立式按鍵分別控制電機的起動/暫停、加速、減速和復位。數碼管的位選位由單片機的P2口控制;數碼管的段選位由單片機的P0口控制,并用三極管8550 驅動電機控制直流電機的轉動,通過霍爾傳感器測速。單片機控制可實現直流電機的加減速。對于不同型號的單片機,只需要相應地改變地址即可。硬件系統具有很好的通用性,以及很高的實際使用價值。系統總體設計如圖1 所示。

圖1 系統總體設計圖Fig.1 Overall system design
控制電路主要由單片機控制,通過程序使單片機發出脈沖寬度調制(pulse width modulation,PWM)脈沖來實現對驅動的控制。新一代的單片機增加了很多功能,其中包括PWM 功能。單片機通過初始化設置,使其能自動發出PWM 脈沖波,只有在改變占空比的時候CPU 才干預。
顯示電路如圖2 所示。LED 數碼管是一種半導體發光器件。這種半導體器件是發光二極管,當給了不同發光二極管的管腳相對的電流,就會使二極管發光,從而顯示出數字。可以顯示的內容包括:時間、日期、距離等可以用數字表示的參數。

圖2 顯示電路Fig.2 Display circuit
本文采用了四位數碼管,用動態驅動顯示具體的數值,即將數碼管的8 個顯示段“a、b、c、d、e、f、g、dp”的同名端連在一起;然后給每個數碼管的公共端設置位選通控制電路,通過各自獨立的I/O 線控制。當單片機的P0口輸出字形碼時,數碼管就都能夠接收到相同的字形碼。數碼管會顯示出哪個字形碼,是由單片機的21 引腳到24 引腳位選通端控制的。因此,只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,而沒有選通的數碼管則不會亮。
通過分時輪流控制各個數碼管的位選通端。每個數碼管會輪流顯示,也就是動態驅動。發光二極管單元按連接方式分為共陽極數碼管和共陰極數碼管。當數碼管中的發光二極管的陽極全部連接在一起作為公共端,即為共陽極數碼管。共陽極數碼管的公共端接+5 V 直流電源。當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。
按鍵電路如圖3 所示。本文所設計的電路有4 個獨立按鍵,如圖3 中3 個按鍵分別為起動/暫停鍵K1(用來控制電機的起動或暫停)、電機轉速擋位加鍵K2和電機轉速擋位減鍵K3。這3 個獨立按鍵一端接地,另一端接單片機的I/O 口。當按鍵按下以后,對應的I/O 口會接收到1 個低電平。單片機通過判斷是否接收到低電平來判斷對應的按鍵是否按下,接著執行相應的程序。

圖3 按鍵電路Fig.3 Key circuit
測速電路如圖4 所示。

圖4 測速電路Fig.4 Speed measuring circuit
該電路采用霍爾元件A44E,1 引腳接電源、2 引腳接地、3 引腳是它的數據輸出端。在3 引腳還接了1個上拉電阻,使其電平處于穩定狀態。3 引腳的輸出端接單片機的P3.3口(13 引腳),用來測量直流電機的轉速。霍爾元件是磁敏元件。根據其測速原理,霍爾傳感器測速是在被測電機的轉軸上裝了1 個碼盤。碼盤的上面裝2 個磁體。當電機旋轉時,電機的轉軸也跟著旋轉,軸上裝的碼盤和碼盤上的磁體會跟著一起旋轉。旋轉時,每當磁體經過霍爾元件,霍爾元件就發出一個信號,經放大整形得到脈沖信號。也有的霍爾元件可以直接輸出脈沖信號,發送運算。2 個脈沖的間隔時間就是周期。由周期可以換算出轉速,也可計算單位時間內的脈沖數,再換算出轉速。通過霍爾元件測量當前直流電機的轉速,并通過數碼管實時顯示。通過對PWM 的調節,可實現對電機轉速的控制。
電機驅動電路如圖5 所示。

圖5 電機驅動電路Fig.5 Motor drive circuit
圖5 中:B1為電機,Q5為PNP 三極管,R6為限流電阻,D1為續流二極管。基極電阻接的是單片機的P1,3口(4 引腳)。其為控制端口,用于控制電機的起動和停轉。當單片機的P1.3口輸出低電平時,三極管導通,電機開始工作。當單片機的P1.3口輸出高電平時,三極管截止,電機停轉,續流二極管用于消耗掉電機產生的反電動勢。
單片機的復位電路如圖6 所示。

圖6 復位電路Fig.6 Reset circuit
復位由路包含一個獨立按鍵。本設計中的復位電路包含上電復位和手動復位。要使單片機復位,需要給單片機的9 引腳一個持續20 μs 以上的高電平。系統剛上電時,C1電容開始充電,通過一個10 kΩ 的下拉電阻,RST 端口會從低電平變為高電平,持續一段時間的高電平使單片機復位;然后RST 變成低電平。手動復位是通過按下K4按鍵來實現的。由于手動按鍵的時間肯定是大于20 μs 的,這段時間內復位引腳接電源,使得單片機復位。
單片機的晶振電路如圖7 所示。圖7 中:Y1是晶振,一般采用12 MHz 或者11.059 2 MHz 的晶振。本文采用的是12 MHz 的晶振。晶振接到單片機的18 引腳和19 引腳,然后外接2 個30 pF 的電容再接地,用于穩定晶振的正常工作。

圖7 晶振電路Fig.7 Crystal resonance circuit
程序功能流程如圖8 所示。

圖8 程序功能流程圖Fig.8 Program function flowchart
圖8 中,通過單片機的程序控制,電機可以顯示出轉速擋位、轉速的變化、加速或者減速,以及電機的起動和停止。主要功能包括:起動/暫停鍵K1用于控制電機的起動和暫停按鍵;加速按鍵K2用于控制電機的轉速,可以增加電機的當前轉速;減速按鍵K3用于控制電機的轉速,可以減緩電機的當前轉速。
仿真電路如圖9 所示。圖9 中,數碼管左邊第一位表示的是電機轉速的擋位,用戶可以通過其設置不同的擋位。圖9 中右側兩位數碼管代表的是電機當前的轉速。當電機按加速鍵從1 擋變為2 擋后,電機會從當前的轉速加速到2 擋的一個穩定轉速并保持。在這個過程中,數碼管會實時顯示電機當前的轉速。由于仿真軟件里沒有霍爾元件,所以圖9 中后兩位不能實時顯示電機當前的轉速。通過仿真,驗證了電路的基本功能。

圖9 仿真電路Fig.9 Simulation circuit
試驗結果如圖10 所示。圖10 中,數碼管的左邊1~5代表電機轉速的擋位。本設計中設計了5 擋電機轉速,可通過調節獨立按鍵對其擋位進行加減。數碼管右邊兩位實時顯示電機的當前轉速,圖10(a)為1 擋時的穩態轉速,其他擋位的穩態轉速如圖10(b)~圖10(e)所示。

圖10 試驗結果Fig.10 Experimental results
本文以直流電機調速控制和測速系統為研究對象,設計了基于51 單片機的直流電機調速控制和測速系統。該系統實現了直流電機的精確穩定控制,使得電機轉速可在1~5 擋內連續可調,并且速度擋位和速度大小可通過程序進行調節。經Keil 程序仿真、Proteus 仿真以及試驗,證實了本設計的正確性和可行性。