基于ATmega16的實(shí)時(shí)溫度采集與分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,溫度對(duì)人們的生活與工作影響很大,所以要實(shí)時(shí)采集溫度并且對(duì)其進(jìn)行分析。為此,實(shí)現(xiàn)實(shí)時(shí)準(zhǔn)確的測(cè)量監(jiān)控。采用串口傳送數(shù)據(jù)并且在PC機(jī)上進(jìn)行分析。由于單片機(jī)的控制方便、簡(jiǎn)單和靈活等優(yōu)點(diǎn),采用了高性能avr單片機(jī)來控制GTJ4-10A固態(tài)繼電器,最總實(shí)現(xiàn)溫度的控制。從而最總在PC機(jī)上繪制溫度曲線并保存數(shù)據(jù)和分析溫度的數(shù)據(jù)。
本文引用地址:http://butianyuan.cn/article/269935.htm1 系統(tǒng)組成及基本原理
本系統(tǒng)由溫度采集模塊,固態(tài)繼電器控制模塊,單片機(jī)模塊,PC機(jī)軟件處理模塊。4個(gè)模塊加起來實(shí)現(xiàn)溫度的控制,以及溫度采集和溫度經(jīng)過軟件處理的分析。它們的邏輯關(guān)系如圖1所示。
本系統(tǒng)的任務(wù)是對(duì)某種特定環(huán)境的溫度進(jìn)行采集并進(jìn)行保存和再顯示,通過單片機(jī)去控制固態(tài)繼電器,從而控制其溫度值的大小,再通過PC機(jī)實(shí)時(shí)顯示當(dāng)前的溫度,并對(duì)當(dāng)前的溫度進(jìn)行分析與保存。便于與以后的溫度值進(jìn)行對(duì)比等應(yīng)用。首先由ATmega16單片機(jī)控制GTJ4-10A固態(tài)繼電器從而控制交流電,再達(dá)到控制溫度值的大小,這個(gè)時(shí)候通過DS18B20溫度傳感器對(duì)當(dāng)前的溫度值進(jìn)行采集。將采集的數(shù)據(jù)結(jié)果通過Tx送給單片機(jī),單片機(jī)將達(dá)到的溫度值一方面通過串行通訊端口送給計(jì)算機(jī),另一方面將溫度數(shù)據(jù)進(jìn)行對(duì)比分析,再通過IO控制GTJ4-10A固態(tài)繼電器。從而實(shí)現(xiàn)了溫度值控制。另一方面PC機(jī)得到的溫度值送給MFC軟件繪制溫度曲線,同時(shí)通過保存按鈕將溫度值以及采集當(dāng)前溫度的時(shí)間記錄下來。然后再經(jīng)過顯示按鈕將溫度值和時(shí)間顯示出來。這就是對(duì)溫度的實(shí)時(shí)采集與分析。
2 硬件部分設(shè)計(jì)
本系統(tǒng)主要采用高性能AVR單片機(jī),GTJ4-10A固態(tài)繼電器,DS18B20溫度傳感器,報(bào)警輸出電路。主要系統(tǒng)電路圖略。
2.1 ATmega16單片機(jī)簡(jiǎn)介
ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以減緩系統(tǒng)在功耗和處理速度之間的矛盾。ATmega16AVR內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與運(yùn)算邏單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。因此可以很好進(jìn)行數(shù)據(jù)傳送以及對(duì)繼電器的控制和溫度的采集。
2.2 溫度采集模塊
DS18B20采用Dallas獨(dú)有的單總線協(xié)議,溫度轉(zhuǎn)換結(jié)果可選擇為9-12位,最大轉(zhuǎn)換時(shí)間在轉(zhuǎn)換結(jié)果為12位時(shí)為750 ms,可通過讀取DS18B 20的狀態(tài)值判斷其是否轉(zhuǎn)換完畢。其測(cè)溫范圍為-55~+125℃,精度在范圍內(nèi)為±0.5℃。
2.3 固態(tài)繼電器的控制
繼電器模塊單元通過單片機(jī)的IO口控制,讓單片機(jī)的計(jì)算器計(jì)數(shù),當(dāng)環(huán)境溫度的需要加熱時(shí),我們通過IO讓繼電器工作,達(dá)到某一數(shù)值時(shí),再給繼電器IO口低電平,從而通過單片機(jī)和利用繼電器實(shí)現(xiàn)弱點(diǎn)控制交流電的作用,這里主要是利用了單片機(jī)PWM實(shí)現(xiàn)控制,從而就實(shí)現(xiàn)溫度值大小的控制。具體電路圖如圖2所示。
2.4 報(bào)警輸出電路
報(bào)警輸出電路通過單片機(jī)的PA6口控制8550三極管,從而控制蜂鳴器。當(dāng)溫度值達(dá)到某一值時(shí),蜂鳴器報(bào)警。這時(shí)通知單片機(jī)停止加熱,再經(jīng)過固態(tài)繼電器控制加熱設(shè)備,實(shí)現(xiàn)溫度維持在一恒定的溫度值附近。如果溫度值低于某一數(shù)值時(shí),單片機(jī)通知加熱設(shè)備加熱,這個(gè)原理是采用采集溫度值控制的,從而達(dá)到用戶的要求。
3 軟件部分設(shè)計(jì)
在系統(tǒng)硬件構(gòu)架完成后,系統(tǒng)軟件所實(shí)現(xiàn)的功能主要是針對(duì)溫度曲線的繪制以及溫度值的實(shí)時(shí)記錄和存檔并且實(shí)現(xiàn)歷史記錄。程序流程圖如圖3所示。
通過單片將數(shù)據(jù)傳遞給PC機(jī),PC機(jī)將接收到的數(shù)據(jù)在溫度曲線顯示與分析用戶見面顯示出來。本軟件設(shè)計(jì)中還有串口選擇、波特率的選擇、停止顯示、清空數(shù)據(jù)、關(guān)閉程序等基本功能。這里主要是溫度值的曲線繪制,然后再將溫度值保存起來并進(jìn)行再顯示的操作。從而達(dá)到實(shí)時(shí)采集與分析的功能。溫度曲線顯示與分析用戶界面如圖4所示。
3.1 溫度顯示曲線圖
溫度顯示曲線圖的主要任務(wù)是將單片機(jī)接收到的數(shù)據(jù)顯示出來,當(dāng)溫度傳過時(shí),在軟件中分別顯示當(dāng)前的溫度值和時(shí)刻。通過MFC中的Time函數(shù)記錄每一個(gè)溫度值的時(shí)刻。并采用繪圖函數(shù)將溫度值和溫度的當(dāng)前時(shí)刻繪成曲線,然后再對(duì)數(shù)據(jù)特殊處理繪制成曲線圖。在這里比較難處理的是實(shí)時(shí)的溫度采集繪制曲線。
3.2 保存設(shè)計(jì)單元
單片機(jī)接受的數(shù)據(jù)通過MFC中的WriteData()將溫度值和時(shí)刻值保存下來,此種做法就是利于將來對(duì)數(shù)據(jù)的分析使用,將溫度值和時(shí)間值記錄存檔成txt文件,打開txt文件可以很清楚看到數(shù)據(jù)的變化情況,這部分功能主要是記錄溫度值和溫度值的當(dāng)前時(shí)刻,利于將來對(duì)溫度值做比較分析。
3.3 顯示設(shè)計(jì)單元
顯示設(shè)計(jì)單元是將保存的溫度值和時(shí)間值再繪制成溫度曲線圖,便于清楚分析數(shù)據(jù)。通過ReadData函數(shù)將保存的數(shù)據(jù)讀出來,然后在經(jīng)過畫圖函數(shù)繪制溫度曲線圖,在這里可以清楚地看到歷史數(shù)據(jù),這樣做便于實(shí)驗(yàn)數(shù)據(jù)科學(xué)分析,這部分功能主要是顯示歷史溫度值和時(shí)刻,實(shí)驗(yàn)結(jié)果如圖5所示。
4 結(jié)束語
該實(shí)時(shí)溫度采集與分析系統(tǒng)行能穩(wěn)定可靠,另外,本系統(tǒng)采用高性能的ATmega16單片機(jī)最小系統(tǒng)組成。選用高靈敏度的數(shù)字式溫度傳感器為依據(jù)。通過單片機(jī)控制輸出不同的PWM,從而可以繪制出實(shí)際的溫度曲線,也可以根據(jù)不同的環(huán)境分析各個(gè)時(shí)刻的溫度值。本軟件設(shè)計(jì)中還有重要的保存和顯示歷史記錄的功能。利于將來進(jìn)行對(duì)比分析數(shù)據(jù)。同時(shí)滿足實(shí)時(shí)環(huán)境溫度檢測(cè)和多種用戶的要求。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
蜂鳴器相關(guān)文章:蜂鳴器原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評(píng)論