摘要:為了實現PC機對步進電機的自動調節(jié),設計了基于虛擬儀器技術的步進電機控制方案。系統(tǒng)采用L298N芯片進行驅動,以LabVIEW作為開發(fā)平臺,并通過串口實現數據通信。結果顯示,該系統(tǒng)能夠很方便地實現步進電機的轉速轉向控制,而且利用虛擬儀器開發(fā)平臺LabVIEW編寫上位機程序,具有編程簡單,控制界面友好,程序可移植性強的特點。
關鍵詞:步進電機;串口;LabVIEW;VISA
步進電機是一種將電脈沖信號轉換成角位移或線位移的機電元件。它在在工業(yè)自動化控制、數控機床、機器人等領域有著廣泛的應用。在遠程實驗系統(tǒng)中,經常有需要利用步進電機對一些旋鈕、位置等進行自動調節(jié)。本文設計了基于虛擬儀器技術的步進電機控制方案。該方案采用虛擬儀器控制步進電機,編程簡單,界面友好,易于更改程序功能,控制靈活性得到了提高。
1 步進電機工作原理
步進電機按其力矩產生原理可以分為反應式、永磁式和混合式幾種。本文采用的是反應式二相四線步進電機,定子有兩個線圈繞組,設其中一個線圈繞組為A相,另一個線圈繞組為B相。當給A相繞組通電時,該繞組即產生磁場,轉子齒與A相繞組各齒對齊;當給B相繞組通電時,轉子齒將與B相繞組各齒對齊,這樣,轉子就旋轉了一個角度。依次給A相、B相繞組通電,就可以實現步進電機的旋轉,改變通電的順序(即先給B相繞組通電,再給A相繞組通電)就可以改變電機旋轉的方向。另外,由于步進電機是由脈沖信號進行控制的,給電機發(fā)一個控制脈沖,它就轉一步,再發(fā)一個脈沖,它會再轉一步。兩個脈沖的時間間隔越短,步進電機就轉得越快。調整單片機發(fā)出的脈沖頻率,就可以對步進電機進行調速。
2 步進電機控制硬件電路
2.1 串行接口電路
串行接口電路由RS 232串行接口、MAX232芯片和AT89S51單片機三部分構成。其中,RS 232串行接口用于連接PC的RS 232串行接口,MAX 232芯片用于銜接RS 232串行接口與AT89S51單片機,實現單片機輸入/輸出的串口信息到PC的串行接口信息的轉換,即AT89S51單片機信號的TTL電平到RS 232電平的轉換,從而實現二者之間電氣特性上的兼容。具體串行接口硬件電路如圖1所示。
2.2 驅動電路
步進電機的驅動電路有多種方案,本文采用芯片L298N進行驅動。該芯片是專用驅動集成電路,輸出電流大,輸出功率強。其輸出電流為2 A,最高電流4 A,最高工作電壓50 V,可以驅動感性負載,如大功率直流電機、步進電機、電磁閥等,特別是其輸入端可以與單片機直接相連,從而很方便地受單片機控制。
采用L298N芯片可以直接控制步進電機,并可以實現電機正轉與反轉,實現此功能只需改變輸入端的邏輯電平。同時,為了避免電機對單片機的干擾,在驅動電路中加入光耦TPL-521,進行光電隔離,從而使系統(tǒng)能穩(wěn)定可靠的工作。具體驅動電路如圖2所示。
3 步進電機控制程序設計
3.1 下位機程序設計
單片機接口程序采用C51語言編寫。程序中,定義了數組table1和table2,用來存儲脈沖信號對應的數據;并定義了一個控制轉向的指針control mode,為該指針賦予不同的值,電機便實現正反轉功能。另外,程序中還定義一個速度控制變量mode,通過PC機發(fā)送命令字改變速度控制變量的值便可以實現轉速的控制。在main函數部分,先調用“串口初始化程序”,再調用“控制命令字判斷程序”以實現電機的速度和轉向控制。main函數的最后部分將單片機收到的命令字返回給PC機,方便觀察者查看通信的情況。下面給出main函數及控制變量的程序段。
3.2 上位機程序設計
單片機PC的通信是通過單片機的串口和PC串口之間的硬件連接實現的。由于LabVIEW軟件簡潔直觀,功能強大靈活,該設計采用LabVIEW編寫上位機的控制程序。程序編寫涉及VISA,它的實質是一個標準的I/O函數庫。這些庫函數用于編寫儀器的驅動程序,完成計算機與儀器間的命令和數據傳輸,以實現對儀器的程控。
在LabVIEW里使用VISA,必須安裝NI-VISA程序包,安裝后,與串口通信相關的VISA函數位于Functions→ALL Functions→Instrurnent I/O→Serial子模板上,其中,VISA配置串口函數用于設定一些參數,并將指定的串口按特定設置初始化;VISA寫入函數將“寫入緩沖區(qū)”的數據寫入指定的串口;VISA讀取函數從指定的串口中讀取指定字節(jié)的數據,并將數據返回至“讀取緩沖區(qū)”;VISA關閉函數關閉指定串口的會話句柄或事件對象。
本文設計的步進電機控制程序采用上述的通信函數結合事件結構進行編寫,并通過程序調試,實現了步進電機的轉向和轉速控制。程序前面板與程序框圖分別如圖3和圖4所示。
4 結語
本文利用圖形化編程語言LabVIEW編寫程序實現了PC與單片機的串口通信,并結合單片機外圍電路對步進電機進行了轉速和轉向的控制。實驗證明采用LabvIEW編寫的程序對步進電機進行控制具有人機交互界面友好、編程簡單、效率高等特點,并且采用LabVIEW編寫的控制程序移植性較強,可以很方便地被其他程序凋用以構成功能更齊全的程序。