摘要:本設計采用淩陽16 位單片機SPCE061A對步進電機進行控製,通過IO口輸出的具有時序的方波作為(wei) 步進電機的控製信號,信號經過芯片L298N驅動步進電機;同時,用 4X4的鍵盤來對電機的狀態進行控製,並用數碼管顯示電機的轉速,采用74LS164作為(wei) 4位單個(ge) 數碼管的顯示驅動,從(cong) 單片機輸入信號;利用淩陽單片機的語音功能播報電機的轉速。
關(guan) 鍵詞: 步進電機 單片機 數碼管
一、 方案論證與(yu) 比較
1、 本設計的重點在於(yu) 對步進電機的控製和驅動,設計中受控電機為(wei) 四相六線製的步進電機(內(nei) 阻33歐,步進1.8度,額定電壓12V)
方案一:使用多個(ge) 功率放大器件驅動電機
通過使用不同的放大電路和不同參數的器件,可以達到不同的放大的要求,放大後能夠得到較大的功率。但是由於(yu) 使用的是四相的步進電機,就需要對四路信號分別進行放大,由於(yu) 放大電路很難做到完全一致,當電機的功率較大時運行起來會(hui) 不穩定,而且電路的製作也比較複雜。
方案二:使用L298N芯片驅動電機
L298N芯片可以驅動兩(liang) 個(ge) 二相電機(如圖1-1),也可以驅動一個(ge) 四相電機,輸出電壓最高可達50V,可以直接通過來調節輸出電壓;可以直接用單片機的IO口提供信號;而且電路簡單,使用比較方便。
圖1-1
通過比較,使用L298N芯片充分發揮了它的功能,能穩定地驅動步進電機,且價(jia) 格不高,故選用L298N驅動電機。而使用L298N時,可以用L297來提供時序信號,可以節省單片機IO口的使用;也可以直接用單片機模擬出時序信號,由於(yu) 控製並不複雜,故選用後者。
2、 數碼管顯示電路的設計
方案一:串行接法
設計中要顯示4位數字,用74LS164作為(wei) 顯示驅動,其中帶鎖存,使用串行接法可以節約IO口資源,但要使用SIO,發送數據時容易控製。
方案二:並行接法
使用並行接法時要對每個(ge) 數碼管用IO口單獨輸入數據,占用資源較多。
由於(yu) 設計中用一塊單片機進行控製,資源有限,選擇了方案一。另外,使用鎖存也起到節約資源的作用。
二、步進電機控製原理
步進電機是數字控製電機,它將脈衝(chong) 信號轉變成角位移,即給一個(ge) 脈衝(chong) 信號,步進電機就轉動一個(ge) 角度,因此非常適合於(yu) 單片機控製。步進電機可分為(wei) 反應式步進電機(簡稱VR)、永磁式步進電機(簡稱PM)和混合式步進電機(簡稱HB)。
步進電機區別於(yu) 其他控製電機的最大特點是,它是通過輸入脈衝(chong) 信號來進行控製的,即電機的總轉動角度由輸入脈衝(chong) 數決(jue) 定,而電機的轉速由脈衝(chong) 信號頻率決(jue) 定。
步進電機的驅動電路根據控製信號工作,控製信號由單片機產(chan) 生。其基本原理作用如下:
(1)控製換相順序
通電換相這一過程稱為(wei) 脈衝(chong) 分配。例如:三相步進電機的三拍工作方式,其各相通電順序為(wei) A-B-C-D,通電控製脈衝(chong) 必須嚴(yan) 格按照這一順序分別控製AB,C,D相的通斷。
(2)控製步進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控製步進電機的速度
如果給步進電機發一個(ge) 控製脈衝(chong) ,它就轉一步,再發一個(ge) 脈衝(chong) ,它會(hui) 再轉一步。兩(liang) 個(ge) 脈衝(chong) 的間隔越短,步進電機就轉得越快。調整單片機發出的脈衝(chong) 頻率,就可以對步進電機進行調速。
三、理論設計
綜和以上選取的方案,總的流程如圖3-2所示。
圖3-1
1、步進電機驅動電路
通過L298N構成步進電機的驅動電路,電路圖如圖3-2所示。
通過單片機SPCE061A的IOB8~IOB13對L298N的IN1~IN4口和ENA、ENB口發送方波脈衝(chong) 信號,起時序圖如圖3-3所示。
圖3-2
圖3-3
2、數碼管顯示電路的設計
數碼管的顯示驅動使用74LS164,通過SPCE061A的IOB0和IOB1口對DATA和CLK發送數據。
圖3-4
3、4x4鍵盤電路
在設計中,使用了標準的4x4鍵盤,其電路圖如圖3-5所示。單片機的A口低8位為(wei) 鍵盤的接口。盡管設計要求中隻需要4個(ge) 鍵對步進電機的狀態進行控製,但考慮到對控製功能的擴展,我們(men) 使用了4x4的鍵盤。
圖3-5
四、程序設計
在進行程序設計的過程中,主要分為(wei) 五個(ge) 部分:雙機通訊、語音報數、數字顯示、步進電機驅動、鍵盤;其中雙機通訊的實現和語音報時比較有特點,將其流程簡要介紹如下,其他部分見附的程序。
1、雙機通訊
圖4-1
我們(men) 在實現雙機通訊的過程中使用了“三次握手”的方式,這是Intle網中成用的數據通訊確認協議,其流程圖如圖4-1所示。
2、語音報數
程序設計中語音報數使用的是SACM-A2000,考慮到程序比較簡單,首先使用了自動報數方式,但發現不能進行連續報數,於(yu) 是使用了非自動方式,流程圖如圖4-2所示。
圖4-2
五、結果分析與(yu) 總結
應該說這次課程設計還是基本達到了設計的要求,但是也存在著未能解決(jue) 的問題,由於(yu) 在執行語音程序時對資源的消耗比較大,在語音報數的時候會(hui) 中斷步進電機驅動信號的輸出,導致電機停轉。為(wei) 此,我們(men) 修改了方案,使用了兩(liang) 塊單片機,通過雙機通訊來傳(chuan) 遞信號,遺憾的是問題仍然沒有得到解決(jue) 。
這次步進電機的綜合實驗我們(men) 學到了步進電機、數碼管、4*4鍵盤、語音報數和雙機通訊的使用,更重要的是學會(hui) 了程序出問題時調試的方法,並養(yang) 成了Debug的習(xi) 慣,學到了程序出問題後怎樣去解決(jue) 的基本方法。
參考文獻:
[1]謝自美《電子線路設計、實驗、測試(第二版)》[M]武漢:華中理工大學出版社,2000.
[2]薛鈞義(yi) ,張彥斌,樊波等《淩陽十六位單片機原理及應用》[M]北京:北京航空航天大學出版社,2003.