何少佳,史劍清,王海坤
(桂林電子科技大學 機電工程學院,廣西 桂林541004)
隨著科技的日益進步,對自動化的要求也越來越高,直流電動機應用領域更加廣泛。例如,軍事方面的雷達天線、慣性導航、火炮瞄準等控制;工業(yè)方面的數控機床、加工生產設備、工業(yè)機器人的控制;計算機外圍設備及辦公設備中各種光盤驅動器、掃描儀、打印機、傳真機、復印機等設備的控制。因此,設計一款可控性好、精度高的電機控制系統(tǒng)是非常有意義的[1]。本文介紹了一種以AT89S51單片機為控制核心的直流電機控制系統(tǒng),實現了通過紅外遙控對電機進行轉速設定,控制電機轉動,對工作狀態(tài)及轉速進行顯示的功能。
該系統(tǒng)可以通過紅外遙控器控制電機的啟動、停止、正轉、反轉、加速、減速并可以設定轉速,通過槽型紅外傳感器測量電機的實時轉速,實時轉速和設定轉速顯示在LCD上。通過設置閉環(huán)控制功能,系統(tǒng)可以自動調節(jié)電機轉速,使電機按設定轉速運轉。
系統(tǒng)設置有開環(huán)、閉環(huán)選擇功能。按下開環(huán)鍵,電機按占空比50%正向轉動,電機工作指示燈亮,正向轉動指示燈亮;按下反向鍵,電機反向轉動,電機工作指示燈保持原狀,反向指示燈亮,正向指示燈熄滅。在正反轉的過程中可以通過紅外遙控器控制電機的加減速,轉速由槽型紅外傳感器測量并顯示在LCD屏上。
按下閉環(huán)按鍵后,可以設定電機轉速、轉向,然后按啟動鍵,電機按設定轉向運行,LED燈顯示工作狀態(tài),單片機不斷計算實際轉速與設定轉速差,并根據設定的算法調節(jié)轉速。LCD屏實時顯示設定轉速與實際轉速。
按下停止鍵,系統(tǒng)停止,所有工作指示燈熄滅。
本系統(tǒng)采用小功率直流電機,用“H橋驅動電路”驅動電機。通過單片機控制和C語言軟件編程控制產生的PWM信號,控制固定電壓的直流電源開關頻率,從而改變負載兩端的電壓,進而控制H橋電機驅動電路使之工作在占空比可調的開關狀態(tài),實現對電機的平滑調速[2]。
整個系統(tǒng)硬件結構如圖1所示。
圖1 系統(tǒng)硬件結構圖
紅外遙控系統(tǒng)由發(fā)射、接收兩部分構成,采用解/編碼專用芯片來進行控制操作。發(fā)射部分包括鍵編碼調制、LED紅外發(fā)送器;接收部分包括光/電轉換放大器、解調、解碼電路等。
(1)遙控發(fā)射器及其編碼。遙控器采用基于UPD6121G芯片的發(fā)射器。該芯片采用脈寬調制的串行碼,以脈寬為0.565 m/s、間隔0.56 m/s、周期1.125 m/s的組合表示二進制的“0”;以脈寬為0.565 m/s、間隔1.685 m/s、周期為2.25 m/s的組合表示二進制的“1”。由“0”和“1”組成的32位二進制碼通過紅外發(fā)射二極管產生紅外線向空間發(fā)射。
(2)接收器及解碼。接收器采用VS1838B一體化紅外線接收器。VS1838B集紅外線接收、放大于一體,不需要外接任何元件,就能完成從紅外線接收到輸出的所有工作。紅外接收頭將接收到的載波信號過慮,得到與發(fā)射代碼反向的接收代碼,傳送給單片機經行控制。
顯示部分采用的是基于HD44780液晶芯片的LCD1602液晶顯示屏,HD44780內置了DDRAM、CGROM和CGRAM存儲器,提供了中文字庫、ASCII碼字庫及自定義字形,去除了編制字庫的麻煩。
一個完整的顯示周期由以下部分組成:首先要對LCD1602初始化,然后指定顯示位置。第1行第1列的地址是00H,但是由于寫入顯示地址時要求最高位DB7恒為高電平1,所以該位置的地址不能寫入00H,而是00000000B(00H)+10000000B(80H)=10000000B(80H)。同理,第2行第1列的地址是C0H,而不是理論地址4OH[3]。然后將要顯示的數據寫入,這時,相應的數據就會在指定的位置顯示出來。
本系統(tǒng)采用的是ALONG RF-310微型直流電機,工作電壓為6 V,而單片機的輸出高電平為5 V,因此電機需要一個驅動電路,采用“H橋驅動電路”來驅動電機[4]。如圖2所示。
圖2 H橋驅動電路
本系統(tǒng)的測速傳感器采用槽型光電傳感器ITR8402。其工作原理是:當接收管接收到來自發(fā)射管的信號時,接收管就導通,沒接到信號時,接收管關斷。利用它的這一特性,可以用一編碼盤不停的切割光電對管,從而產生一連串的脈沖。
編碼盤裝在電機上,電機轉動后,編碼盤就不停的切割光電對管,從而產生一定頻率的脈沖,該脈沖信號被單片機的計數管腳P3.3接收,利用定時器設定中斷周期,然后處理這一周期內接收到的脈沖次數,通過計算便可得出電機的轉速。編碼盤有50個孔,編碼盤轉動一圈能夠產生50個脈沖,精度達到0.02 rpm/分,如果想要提高測速的精度,只需改變編碼盤上的孔數即可。
系統(tǒng)程序是在Keil uVision3中設計開發(fā)的,用高級C語言編寫[5]。Keil uVision3是美國Keil公司開發(fā)的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),可以完成從工程建立到管理、編譯、鏈接、目標代碼的生成等完整的開發(fā)流程,它支持所有的Keil的工具軟件,包括C51編譯器、A51匯編器、BL51/LX51鏈接定位器、Debug調試器和目標文件至Hex格式轉換器。因此選擇其為程序開發(fā)環(huán)境[6]。
系統(tǒng)程序由主程序、中斷處理子程序、紅外處理程序、轉速測量程序及顯示程序等組成。圖3為主程序流程圖,圖4為閉環(huán)控制流程圖。
圖3 主程序流程圖
圖4 閉環(huán)控制流程圖
在初始化時關閉定時中斷,P2.3-P2.5口輸出高電平,狀態(tài)指示燈熄滅,P2.6、P2.7口輸出高電平電機停止轉動,對LCD初始化顯示。將所有的初始化功能寫成一個子程序,主程序只需調用它即可完成系統(tǒng)初始化。當初始化完成之后,掃描P3.2口,檢測是否有信號輸入,如有信號,識別信號并跳轉到相應子程序,控制電機運動。
該系統(tǒng)利用MC51系列單片機生成PWM波,實現數字式的PWM直流電機調速,相對于傳統(tǒng)硬件調速大大降低了成本。經實際運行,可以滿足在遙控器操作下對電機的啟動、停止、正反轉的控制,LED指示燈正確顯示工作狀態(tài),LCD正常顯示轉速。本系統(tǒng)可用于多種商業(yè)用途,具有較強的實用價值。
[1]張 方.電機及拖動基礎[M].北京:中國電力出版社,2008.
[2]譚建成.新編電機控制專用集成電路與應用[M].北京:機械工業(yè)出版社,2006.
[3]朱華光.淺議LCD1602的編程技巧[J].電腦知識與技術,2010,6(18):4980-4982.
[4]陳伯時.電力拖動自動控制系統(tǒng)[M].北京:機械工業(yè)出版社,2003.
[5]譚浩強.C程序設計[M].北京:清華大學出版社,2005.
[6]王為青,程國鋼.單片機keil Cx51應用開發(fā)技術[M].北京:人民郵電出版社,2007.