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

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

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

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

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

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

圖6 復(fù)位電路Fig.6 Reset circuit
復(fù)位由路包含一個(gè)獨(dú)立按鍵。本設(shè)計(jì)中的復(fù)位電路包含上電復(fù)位和手動(dòng)復(fù)位。要使單片機(jī)復(fù)位,需要給單片機(jī)的9 引腳一個(gè)持續(xù)20 μs 以上的高電平。系統(tǒng)剛上電時(shí),C1電容開始充電,通過一個(gè)10 kΩ 的下拉電阻,RST 端口會(huì)從低電平變?yōu)楦唠娖?持續(xù)一段時(shí)間的高電平使單片機(jī)復(fù)位;然后RST 變成低電平。手動(dòng)復(fù)位是通過按下K4按鍵來實(shí)現(xiàn)的。由于手動(dòng)按鍵的時(shí)間肯定是大于20 μs 的,這段時(shí)間內(nèi)復(fù)位引腳接電源,使得單片機(jī)復(fù)位。
單片機(jī)的晶振電路如圖7 所示。圖7 中:Y1是晶振,一般采用12 MHz 或者11.059 2 MHz 的晶振。本文采用的是12 MHz 的晶振。晶振接到單片機(jī)的18 引腳和19 引腳,然后外接2 個(gè)30 pF 的電容再接地,用于穩(wěn)定晶振的正常工作。

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

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

圖9 仿真電路Fig.9 Simulation circuit
試驗(yàn)結(jié)果如圖10 所示。圖10 中,數(shù)碼管的左邊1~5代表電機(jī)轉(zhuǎn)速的擋位。本設(shè)計(jì)中設(shè)計(jì)了5 擋電機(jī)轉(zhuǎn)速,可通過調(diào)節(jié)獨(dú)立按鍵對(duì)其擋位進(jìn)行加減。數(shù)碼管右邊兩位實(shí)時(shí)顯示電機(jī)的當(dāng)前轉(zhuǎn)速,圖10(a)為1 擋時(shí)的穩(wěn)態(tài)轉(zhuǎn)速,其他擋位的穩(wěn)態(tài)轉(zhuǎn)速如圖10(b)~圖10(e)所示。

圖10 試驗(yàn)結(jié)果Fig.10 Experimental results
本文以直流電機(jī)調(diào)速控制和測(cè)速系統(tǒng)為研究對(duì)象,設(shè)計(jì)了基于51 單片機(jī)的直流電機(jī)調(diào)速控制和測(cè)速系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了直流電機(jī)的精確穩(wěn)定控制,使得電機(jī)轉(zhuǎn)速可在1~5 擋內(nèi)連續(xù)可調(diào),并且速度擋位和速度大小可通過程序進(jìn)行調(diào)節(jié)。經(jīng)Keil 程序仿真、Proteus 仿真以及試驗(yàn),證實(shí)了本設(shè)計(jì)的正確性和可行性。