第1章 概述
第2章 方案論證與選擇
2.1 系統總體方案的選擇
2.2 加熱棒
2.3 顯示部分器件
2.4 無線通信部分
2.5 語音播放部分
2.6 輸入設備的選擇
第3章 系統結構圖及硬件設計
3.1 系統總體結構圖設計
3.2 主控端硬件設計
3.3 接收端硬件設計
第4章 系統軟件設計
4.1 主控端流程圖
4.2 接收端流程圖
4.3 上位機軟件功能圖
第5章 系統調試說明
第6章 創新點
附錄A 元件清單
附錄B 系統原理圖
隨著計算機技術、測量儀器和控制技術的高速發展,現代冶金、石油、化工及電力生產過程中,應用了越來越多的先進測量控制技術、設備和方法。在這些眾多的先進測量控制技術中,如何對水溫進行控制成為焦點課題之一。 溫度是極為重要而又普遍的熱工參數之一,在環境惡劣或溫度較高等場合下,為了保證生產過程正常安全的進行,提高產品的質量和數量,以及減輕工人的勞動強度和節約能源,及時準確地得到溫度信息并對其進行適時的控制。 由于本設計是一個典型的檢測、控制型應用系統,它要求系統完成從水溫檢測、信號處理、輸入、運算到輸出控制加熱棒加熱功率以實現水溫控制的全過程,因此,應以單片微型計算機為核心組成一個專用計算機應用系統,以滿足檢測、控制應用類型的功能要求。同時,配以上位機,使該套應用系統具有實時繪制圖表、語音播報、打印圖表、數據回放等功能。
本水溫自動控制系統分為主控部分、顯示部分、接收部分、無線部分、上位機部分共五大部分,其中主控部分和上位機部分是本次設計的重點。 方案一:采用普通溫度傳感器對溫度進行采集,采用普通加熱棒加熱,溫度到達時停止加熱,采用電機攪拌。 方案二:采用防水溫度傳感器對溫度進行采集,采用PID算法控制加熱棒加熱,采用氣泵使水運動起來。 方案對比:普通溫度傳感器只能在容器的外部對溫度進行采集,不能很準確的反應實時的變化量。由于加熱棒停止加熱一段時間內仍然有加熱的功效,所以如果溫度到達時才停止加熱,溫度一定會超出目標溫度很多,所以采用PID算法可以較為準確的控制水溫的變化情況。因為水有惰性,如果不進行攪拌那么一個燒杯中的水上層和下層甚至可能會差十攝氏度,所以需要讓水運動起來。由于容器較小,使用電機攪拌空間不足,所以采用氣泵方式。綜合比較,本設計采用方案二。 根據要求,要將1000ml也就是1kg的水從常溫(20℃)加熱到50℃,所需熱量為Q=cmΔT=4.2×103×1kg×(50℃-20℃)=1.26×105J,兩分鐘內完成則需要至少(Q=W=1.26×105J)P=W/t=1.26×105J/120s=1050w的加熱棒,考慮到熱能的損耗和運用PID控制算法不能100%工作的情況,采用了兩個800w的加熱棒進行加熱控制。 方案一:通過分時輪流控制各個LED數碼管的COM端,就使各個數碼管輪流受控顯示。在輪流顯示過程中,每個數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度恰當,就會顯示相應的數據。 方案二:LCD12864液晶顯示器件由于具有顯示信息豐富、功耗小、體積小、質量小、無輻射等優點而得到了廣泛的使用,特別是內部含有控制/驅動器及中文字庫的圖形點陣液晶顯示模塊有很好的控制顯示功能,能方便的和微處理器、單片機接口,并提供并行與串行接口方式。 方案對比:液晶顯示較LED顯示有無法比擬的優點,所以采用了液晶顯示的方案。 無線選用頻率是2.4GHz的NRF24L01無線模塊。主要特點是支持雙工,并且速度快,耗電量較低,支持多頻段多地址的功能,在設計中使用了2個無線進行數據傳輸,其中無線地址使用了地址段,通信過程中使用了變址傳輸的方式和問詢方式,來避免通信信道的擁擠造成的信息丟失。 方案一:ISD4004語音芯片是美國Winbond公司產品,芯片設計是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口送入。芯片采用多電平直接模擬量存儲技術, 每個采樣值直接存貯在片內閃爍存貯器中,因此能夠非常真實、自然地再現語音、音樂、音調和效果聲。 方案二:采用上位機語音播報,上位機語音播報設計是采用多線程語音播報,在語音播報時不會影響到數據接收和數據顯示。語音播報調用了微軟的自動發音語音支持,可以任意使用多國語言進行語音播報,在重新修改的時候方便、快速,減少了重新設計時工程量。 方案對比:因為本套系統已經使用上位機,所以在上位機基礎上增加語音播報功能比較簡單,不但節約單獨硬件模塊的成本,且上位機語音播報的效果好于硬件模塊的播報效果,所以采用方案二。 方案一:采用陣列式鍵盤。使用較少的I/O讀取較多的鍵盤信息,主要通過動態掃描的方式進行的工作,當矩陣的某行通上低電平,若有按鍵按下,相應的列就會輸出低電平,通過這樣的方式可以讀出按鍵狀態,而且不浪費I/O,但是此方式只使用與按鍵數量加大的時候,若一個或者兩個按鍵則不適用。 方案二:采用獨立式按鍵。每個I/O獨立連接單片機MCU的端口,特點是使用比較方便,開發比較迅速,相應相對較快,但是此種方案浪費系統資源,設計時可以根據設計內容進行考慮,因為不同的設計對資源的使用是不同,故還需看時間情況,通過查詢資料得知在個別單片機中獨立按鍵需要連接上拉電阻使其保持穩定。 方案對比:由于系統設計使用的按鍵較少,只用到了四個按鍵,所以采用方案二。
按照系統功能要求,系統主控端、接收端和上位機三個模塊,根據這個要求,設計的“水溫自動控制系統”框圖如圖3.1所示。 圖3.1 系統總體框圖 主控端對水溫進行實時監測和控制,并通過無線將溫度數據發送給接收端,接收端接收到數據后立即通過串口發送給上位機,上位機將接收到的數據繪制成圖表并存入到數據庫中,上位機同時具有實時語音播報溫度、打印圖表的功能。 主控端包括復位電路、溫度采集電路、加熱控制電路、制冷控制電路、LCD顯示電路、按鍵控制電路、無線傳輸電路組成,系統的主控端框圖如圖3.2所示。 圖3.2 主控端框圖 接收端包括無線傳輸電路和串口通信電路組成,“水溫自動控制系統”接收端框圖如圖3.3所示。 圖3.3接收端框圖 主控端作為系統的核心,集成了很多功能模塊和數據處理算法在上面,為了達到每個模塊處理時間的均衡與系統運行時間的最短,得到比較優化的主控制程序流程圖如圖4.1所示。 圖4.1 主控端流程圖 當主控端上電后,系統對溫度采集模塊、加熱控制模塊、制冷控制模塊、LCD顯示模塊、按鍵控制模塊、無線傳輸模塊進行初始化。初始化完成后,讀取無線數據的接收緩沖區,判斷是否接收到數據,如果收到命令則判斷其命令類型并執行。檢測按鍵是否被按下,如果被按下則處理相應的按鍵事件。獲取當前溫度,在LCD上顯示,并通過無線將溫度數據發送給接收端,把當前溫度值傳入PID算法中進行運算,得出脈沖寬度,再通過脈沖控制加熱棒加熱或制冷器制冷。 接收端作為系統的主要組成部分,負責接收主控端通過無線傳來的數據,并將數據及時的通過串口發送給上位機,接收端的程序流程圖如圖4.2所示。 當接收端上電后,初始化串口模塊和無線傳輸模塊。初始化結束后,一直等待接收主控端傳來數據,如果接收到數據,立即將數據通過串口發送給上位機,并向主控端返回校驗數據,然后繼續等待接收主控端傳來的數據。
圖4.2 接收端流程圖 上位機作為系統的重要組成部分,有端口選擇、接收數據、繪制圖表、語音播報、打印圖表、數據回放等功能。上位機軟件框圖如圖4.3所示。 圖4.3上位機軟件功能圖 當上位機數據采集處理系統啟動后,程序首先檢查自身配置文件,并顯示在系統狀態框上對使用者進行提醒。若檢查通過,用戶則開始設定自定義配置。設置完成后,系統等待用戶操作。用戶選擇相應模塊功能后,進入模塊菜單,模塊菜單開始讀取配置文件開始初始化,根據用戶的選擇和相應功能的實現,模塊會根據選擇對自身控件或者功能線程進行激活。
在調試和制作過程中遇到了很多問題,如在語音播報和打印的時候程序會卡死,無法永久保留用戶設置,PID算法計算不準確等,但經過認真考慮和查詢對問題都進行了解決,調試結果如下: - 通過多線程和移交系統資源控制權解決語音播報阻塞和打印等待問題;
- 通過讀寫ini系統配置文件,解決系統保留用戶設置問題;
- 通過用動態數據讀取顯示,解決數據顯示直觀效果問題;
- 由于PID算法根據不同的控制系統有不同的參數設置,所以為了更精準的實現對水溫度的控制,進行了很多的實驗,對所得到的數據進行記錄、比較,最終得到了符合要求的一組參數設置數據;
- 通過配置無線的寄存器,采用無應答從發機制解決了無線丟失的問題;
- 通過統一的協議,加強了系統的通信可靠性,減少了誤碼率。
整個系統達到了題目的技術指標要求。 在制作過程中根據具體情況,結合所學的知識,對本系統添加了一些新的功能,創新點如下: - 能適當的放縮圖表,便于查看數據;
- 能自動的語音播報;
- 能定時自動打印圖表;
- 能穩定到任意溫度。
附錄A 元件清單
附錄B 系統原理圖 附錄B1接收端電路圖 附錄B2主控端電路圖
全部資料51hei下載地址:
|