關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 一種開關量控制的水浴恒溫控制器設計

        一種開關量控制的水浴恒溫控制器設計

        作者: 時間:2012-09-05 來源:網絡 收藏

        2.5 溫度曲線顯示模塊
         溫度曲線顯示模塊是本編程的難點之一。本文選擇的液晶屏點數為128×160,真正顯示曲線部分如圖6所示。由圖6可知,可顯示的橫坐標點共121個點。若在while循環中,每次循環都在液晶屏上顯示一個點,則121個橫坐標表示的點只能覆蓋很短的時間。若能實現每隔1 s讀取一次溫度值,則整個屏幕可以覆蓋2 min內的數據,也就是說足可以顯示2 min內的溫度變化的趨勢。本文實現的方法如下:
         cur_sec=date_r[0]; //讀出當前的秒數,為BCD碼
        if (cur_sec!=last_sec)
        //當前的秒數與上一次不相等,則過了1 s了
        {
        ……//此部分代碼1 s執行一次
        last_sec=cur_sec;
        count++;//用于斷續加熱
        }

        本文引用地址:http://www.104case.com/article/159976.htm

         畫點函數與畫直線函數原型為:
         void LCD_draw_point(uchar x,uchar y,uint color);
         //畫點函數
         void LCD_draw_line(uchar xStart,uchar yStart,uchar xEnd,uchar yEnd, uint color)//畫直線函數
        在曲線顯示時,希望溫度曲線始終在屏幕的中間部分顯示,以全面反映溫度的上下波動。而且畫直線時,需要知道上一個溫度點的縱坐標和當前溫度點的縱坐標。本系統中,曲線顯示部分中間那條標尺縱坐標為115,于是計算當前溫度點的縱坐標和上一次溫度點的縱坐標方法為:
         a=115+(TargetTemSet-Temperature);
            //溫度變化后的Y坐標
         b=115+(TargetTemSet-Temperature_last);
            //溫度變化前的Y坐標
         其中,TargetTemSet為當前設定的溫度值,Temperature為當前檢測到的溫度值,Temperature_last為上一秒檢測到的溫度值。假設設定溫度TargetTemSet=200(即20.0℃),上一次溫度Temperature_last=200,當前溫度為Temperature=210,則變化后的溫度點縱坐標a=105,溫度變化前的溫度點縱坐標b=115。由此可以畫一條豎線,就可以達到要求。在使用畫直線函數前,還需要將a、b限幅,即{a,b}?奐[75,155]。
        在本中,共畫出了9條標尺,每個標尺間距為10個像素點,代表溫度相差1℃。
        2.6 溫度調節模塊
         本要求實現溫度值與設定值相差大于3℃時,連續加熱;小于3℃時,斷續加熱;大于設定值時,斷開繼電器;斷續加熱時,繼電器交替通斷。關鍵代碼如下:
        if(Temperature(TargetTemSet-30))
        //溫度較低,直接加熱
        {
        if (Temperature!=0) RELAY=RelayOn;
        }
        else if(TemperatureTargetTemSet)
        //溫度接近設定溫度,斷續加熱
        {
        if (count>= TargetTimeInterval)
        //讀出秒數,需加熱時,加熱幾秒,停幾秒
         { count=0; RELAY=!RELAY;}
         }
         else RELAY=RelayOff;//大于設定值, 斷電
        3 實驗效果
         針對本進行相關的實驗,實驗原理圖如圖10所示。實驗中,設定了3個溫度檔次,即30 ℃、35 ℃、40 ℃分時進行。

         當設定為30℃時,通過實驗發現加熱過程溫度過沖為0.3℃,過程波動為±0.1℃,控制過程運行良好。
        當溫度設定為35℃時,發現過沖比較大,說明傳感器與加熱體相隔距離太遠,不合理,需要重新調整。但過程比較滿意。
         于是調整傳感器與加熱體的距離(減小),使之更加合理。設定為40℃時,水槽水溫上升曲線可知基本上無過沖,恒溫效果比較滿意。在恒溫過程中將時間清零了一次,所以運行時間比加溫時間小。
        實驗中發現:溫度是否恒定、過沖是否小與許多因素有關,如:加熱體和傳感器之間的距離、水槽是否密封、水槽材質散熱性等。當溫度設定較高時,水槽周邊散熱較大,同一水槽中,不同位置水的溫度不同,水槽中的水溫呈一定的梯度分布。要提高恒溫效果,除了從本身入手外,還可以進行如下方面的考慮:
         (1)保持加熱體與傳感器之間處于合適的距離。
         (2)有條件的話,在加熱體附近增加一個小的螺旋槳,使水在水槽內溫度更加均勻。
         (3)保持水槽密封,根據水槽裝水的多少,選擇合適功率的加熱體。
         (4)增大加熱體加熱面積,使水槽整體升溫,減小局部溫度過高的可能。
         本文設計了一種恒溫控制器,介紹了其硬件與軟件設計過程,并進行了相關實驗,結果表明其升溫與恒溫效果均比較滿意。本設計的一大亮點在于通過TFT液晶屏實時顯示了當前溫度值、設定值、當前運時間等,還能通過彩色曲線顯示2 min內溫度變化趨勢。文中提出的實時時鐘編程思想,可在高速微處理器上實現長時間定時,對其他大慣性控制系統的設計具有一定的借鑒意義。
        參考文獻
        [1] 賀艷秋,黃大貴.電阻爐FuZZy_PID溫度控制系統[J]. 橡膠工業,2006(53):109-109.
        [2] 宏晶公司.單片機器件手則:STC89C51RC-RD+GUIDE-CHINESE.2006:42-43.
        [3] 杜克銘,姚燕,李景涌.基于STC89C52的多路溫度傳感器標定系統[J].電子技術應用,2009(4):152-155.
        [4] 王節旺.一種基于STC89C52RC單片機的計時系統的設計方案[J].微型機與應用,2011(6):28-30.


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚宁县| 阿瓦提县| 临江市| 康平县| 石河子市| 富民县| 乌兰察布市| 柏乡县| 松江区| 长泰县| 临西县| 广南县| 荣成市| 深州市| 宜兰县| 汕尾市| 博野县| 安龙县| 孟津县| 教育| 邹城市| 内丘县| 兰溪市| 通江县| 龙海市| 龙门县| 彰化市| 白城市| 栖霞市| 汝阳县| 揭西县| 越西县| 离岛区| 大荔县| 吉木乃县| 晋中市| 河北省| 江川县| 镇坪县| 会同县| 杨浦区|