王 桔 洪 梅
(長春大學 電子信息工程學院,長春130022)
恒溫箱是航空、汽車、家電、科研等領域必備的測試設備,用于測試和確定電工、電子及其他產品及材料進行高溫試驗的溫度環境變化后的參數及性能,是用來在一定的溫度下飼養或培養生物或生物的一部分(細胞等)的箱型器具[1]。適合電子、電器、通訊、儀表、車輛、塑膠制品、金屬、食品、化學、建材、醫療、航天等制品檢測質量之用。
在實驗室中,特別是生物實驗室,我們為了得到更加準確的實驗數據,對于恒溫實驗環境要求嚴格。所以針對實驗室來說,恒溫箱的作用顯得相當重要,對于我們實驗室的研究過程以及研究結果將產生很大的影響。同時更加準確的研究結果對于我們由此產生的試驗成果的實際運用產生積極的作用。
在工業生產中,恒溫箱的應用是廣泛的,工廠車間的產品以及由此相關的工業生產都是基于恒溫環境的后續發展。所以恒溫箱的作用在工業中更是處于舉足輕重的地位。同時在工業生產過程中我們對于恒溫箱的要求也相對更加嚴格,比如質量的可靠性、恒溫箱的維護管理費用、恒溫箱的本身價位等,
在醫藥方面,醫用恒溫箱主要用于藥品,試劑的儲存,運輸;疫苗,血液的冷藏保溫,透析液的加溫,生理鹽水的加溫等。
本系統包括STM32F103 核心板、PT1000 溫度傳感器、放大電路、4×4 矩陣鍵盤、聲光報警電路、液晶顯示屏、驅動電路、繼電器控制電路、半導體制冷片及PTC 加熱片,如圖1 所示。
PT1000 溫度傳感器輸出電壓經放大電路放大后送到STM32F103 核心板的模數轉換接口,轉化成數字量后經STM32F103 單片機處理得到相應的溫度信息。在某一時刻箱內如果低于設置溫度則通過繼電器控制電路使PTC 加熱片開始加熱,經H 橋驅動電路正向驅動制冷片使半導體制冷片開始加熱箱體。當箱內溫度高于設置溫度時,STM32F103 單片機發出控制指令,經驅動電路反向驅動制冷片使半導體制冷片開始制冷。在液晶顯示屏上顯示箱內實際溫度和設置溫度。通過4×4 矩陣鍵盤輸入設置溫度,也可以在觸摸屏上直接輸入設置溫度。
系統采用PID 算法控制單片機輸出PWM 的占空比從而控制半導體制冷片的功率。在某一時刻箱內溫度如果低于設置溫度則PTC 加熱片開始加熱,經H 橋驅動電路正向驅動制冷片使半導體制冷片開始加熱箱體。當箱內溫度高于設置溫度時,STM32F103 單片機發出控制指令,經驅動電路反向驅動制冷片使半導體制冷片開始制冷。

圖1 系統設計方案
PID 是比例控制(P)、積分控制(I)和微分控制(D)的簡稱。在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID 控制器是應用最廣泛的一種自動控制器。PID 調節規律[2]是連續系統動態品質校正的一種有效方法,它的參數整定方式簡單,結構形式靈活??刂泣c包含兩種PID 控制算法,分別是:增量式算法,位置式算法[3]。
本設計采用位置式算法,將實際溫度與目標溫度之差經比例微分積分運算后擬合成PWM 占空比數值的變化曲線,輸出給光耦H 橋驅動電路。控制器根據第n 次被控變量采樣結果與設定值之間的偏差e(n)計算出第n 次采樣之后所輸出的控制變量。位置式PID 控制算法的數學表達式為:

其中u(n-1)是第n-1 次采樣之后所輸出的控制變量。控制變量u(n)的值將決定第n 次采樣之后執行器的動作位置。離散化公式:

常用的數字濾波器算法有中值判斷法、算術平均值法、加權濾波法、滑動濾波法[4]。中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的值接近的真實值,從而消除孤立的噪聲點。中值濾波對脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時,能夠保護信號的邊緣,使之不被模糊[5]。中值濾波的算法比較簡單,也易于用硬件實現。算術平均法是求出一定觀察期內預測目標的時間數列的算術平均數作為下期預測值的一種最簡單的時序預測法。常用的有簡單算術平均法和加權算術平均法?;瑒訛V波法就是把連續取N 個采樣值看成一個隊列,隊列的長度固定為N,每次采樣到一個新數據放入隊尾,并扔掉原來隊首的一次數據.把隊列中的N 個數據進行算術平均運算,就可獲得新的濾波結果。此方法對周期性干擾有良好的抑制作用,平滑度高 適用于高頻振蕩的系統。
比較幾種濾波方法可以得出。如圖2 所示,中值判斷法更適合恒溫箱的軟件設計。
本系統的調試從傳感器的數據輸入開始到PWM 的輸出再到GPIO 的測試每一步都要經過數據的比對。傳感器的數據輸入使用的是STM32 單片機的AD 端口,使用ADC 時常常需要不間斷采集大量的數據,在一般的器件中會使用中斷進行處理,但使用中斷的效率還是不夠高。在STM32 中,使用ADC 時往往采用DMA傳輸的方式,由DMA 把ADC 外設轉換得的數據傳輸到SRAM,再進行處理,甚至直接把ADC 的數據轉移到串口發送給上位機。

圖2 中值判斷法
測試使用的端口是ADC1 的通道11,單片機上的引腳為PC1,AD 的轉換結果保存在全局變量ADCConvertedValue 中。將放大器的輸出端接到PC1 上,打開電源后,將ADC 的測試程序燒寫到單片機中,進行在線調試,觀察Watch1 窗口中ADC-ConvertedValue 值的變化,如圖3 所示。

圖3 Watch1 窗口中ADC-ConvertedValue 值
變量ADC-ConvertedValue 的結果與真實值相比誤差很小,ADC 端口調試通過。
在STM32 芯片上,I/O 引腳可以被軟件設置成各種不同的功能,如輸入或輸出,所以被稱為GPIO(General-purpose I/O)。而GPIO 引腳又被分為GPIOA、GPIOB-GPIOG 不同的組,每組端口分為0~15,共16 個不同的引腳,對于不同型號的芯片,端口的組和引腳的數量不同。
控制LED 就要選定需要控制的特定引腳,配置需要的特定功能,設置GPIO輸出電壓的高低。
將LED 測試程序燒寫到單片機中,如圖4 所示,進入調試界面并全速運行,可以觀察到LED 燈間隔500 毫秒閃爍,GPIO 端口沒有錯誤,調試完成。

圖4 調試界面
PWM 由通用定時器產生。通用定時器是通過可編程預分頻器驅動的16 位自動裝載計數器構成。它適用于很多種場合,包括測量輸入信號的脈沖長度或者產生輸出波形[6]。使用定時預分頻器和RCC 時鐘控制器預分頻器,脈沖長度和波形周期可以再幾個微妙到幾個毫秒之間調整[7]。定時器是完全獨立的沒有相互共享任何單片機資源。
調試使用的是定時器3 的2 通道,實現KHz 的不同占空比波形。槳測試程序燒寫到單片機中,進人在線調試狀態,用示波器觀察輸出端口的波形如圖5 所示。

圖5 示波器顯示的波形圖
本文提出了基于微型計算機機測量和控制技術的恒溫箱系統,STM32F103 單片機作為系統的核心,使用半導體制冷片作為系統的加熱、制冷設備,轉換效率較高,與使用壓縮機的恒溫箱相比更節能更環保。
系統初步完成了最初的設計要求并基本實現了總體功能。經過測試,系統的恒溫范圍在25℃-80℃。超調量為1℃,達到穩定的時間為10min 左右,如圖6 所示本設計的實物圖。

圖6 基于STM32 單片機的恒溫箱系統實物圖
[1] 徐亞飛,劉官敏,高國章,等.溫箱溫度PID 與預測控制[J].武漢理工大學學報(交通科學與工程版),2004,28(4):554-557.
[2] 呂芮棟,張志文.以MSP430F149 為核心的溫度檢測儀的硬件模塊和軟件設計[J].現代電子技術.,2012,35(1):199-201.
[3] 施春寧,張中華,王濤.談PID 控制的理論分析[J].山西建筑,2012,38(3):238-240.
[4] 張鵬飛,齊曉慧.基于N 溝道MOS 管H 橋驅動電路設計與制作[J].科技信息,2012(20):147,149.
[5] 廖建興.基于DB6225 芯片的H 橋電機驅動器[J].研究與設計,2012(1):32-35.
[6] 汪亮亮.溫室溫度檢測及報警器的設計與功能實現[J].電腦知識與技術,2012,8(12):2906-2907.
[7] TomaszKlopot,Jacek czeczot..Flexible function block implementation[J].Energy and Environment,2014,4(4):21-23.