基于Proteus的Arduino學習08-MAX6675與熱電偶高溫測量的實現
作者:我不是奔跑哥 來源:我不是奔跑哥的blog 點擊數:
… 更新時間:2014年06月08日 【字體:
大 中 小】
這次我們使用熱電偶和MAX6675實現高溫測量,并且串口輸出溫度測量值。
一、熱電偶工作原理
兩種不同成份的導體兩端接合成回路,當兩個接合點的溫度不同時,在回路中就會產生電動勢,這種現象稱為熱電效應,而這種電動勢稱為熱電勢。
熱電偶就是利用熱點效應原理進行溫度測量的,其中,直接用作測量介質溫度的一端叫做工作端(也稱為測量端),另一端叫做冷端(也稱為補償端);冷端與顯示儀表或配套儀表連接,顯示儀表會指出熱電偶所產生的熱電勢。
熱電偶的實物如圖1所示。
圖1 熱電偶實物圖
熱電偶實際上是一種能量轉換器,它將熱能轉換為電能,用所產生的熱電勢測量溫度,對于熱電偶的熱電勢,應注意如下幾個問題:
1、熱電偶的熱電勢是熱電偶工作端的兩端溫度函數的差,而不是熱電偶冷端與工作端,兩端溫度差的函數;
2、熱電偶所產生的熱電勢的大小,當熱電偶的材料是均勻時,與熱電偶的長度和直徑無關,只與熱電偶材料的成份和兩端的溫差有關;
3、當熱電偶的兩個熱電偶絲材料成份確定后,熱電偶熱電勢的大小,只與熱電偶的溫度差有關;若熱電偶冷端的溫度保持一定,這時候的熱電偶熱電勢僅是工作端溫度的單值函數。
將兩種不同材料的導體或半導體A和B焊接起來,構成一個閉合回路。當導體A和B的兩個執著點1和2之間存在溫差時,兩者之間便產生電動勢,因而在回路中形成一個大小的電流。
二、MAX6675工作原理
根據熱電偶測溫原理,熱電偶的輸出熱電勢不僅與測量端的溫度有關,而且與冷端的溫度有關,需要測量出冷端溫度,從而才能準確地測量出真實的溫度。下面將介紹集成冷端補償的芯片MAX6675。
MAX6675是MAXIM公司的K型熱電偶串行模數轉換器,它能獨立完成信號放大、冷端補償、線性化、A/D轉換及SPI串口數字化輸出功能。
MAX6675內部集成有冷端補償電路;帶有簡單的3位串行SPI接口;可將溫度信號轉換成12位數字量,溫度分辨率達0.25℃;內含熱電偶斷線檢測電路。冷端補償的溫度范圍-20℃~80℃,可以測量0℃~1023.75℃的溫度。
MAX6675為SO-8腳封裝,工作電壓為+5V直流電壓,功耗為47.1mW,電流為50mA,適用于體積不大,不利散熱的裝置條件下使用,其引腳圖如圖2所示。其中SO為SPI串行輸出端口引腳;
CS為片選信號;SCK為串行時鐘輸入;T+、T-分別接熱電偶的測量端和冷端。
圖2 MAX6675引腳圖
首先,我們需要proteus仿真里面添加K型熱電偶和MAX6675,在元器件搜索欄中輸入“TCK”和“MAX6675”,并添加至元器件選擇欄中,如圖3和4所示。然后,并將K型熱電偶的紅色端和藍色端分別接至MAX6675的T+(2腳)和T-(3腳),MAX6675的SO、SCK、CS分別接至Arduino
UNO的數字口8、9、10,熱電偶仿真圖如圖5所示。最后點擊MAX6675,設置冷端溫度為25℃。如圖6所示。

圖3
添加K型熱電偶
Arduino代碼清單:
#include
"Max6675.h"
Max6675 ts(8,
9, 10);
// Max6675
module: SO on pin #8, SS on pin #9, CSK on pin #10 of Arduino
UNO
// Other pins
are capable to run this library, as long as digitalRead works on
SO,
// and
digitalWrite works on SS and CSKl
void
setup()
{
ts.setOffset(0);
// set offset
for temperature measurement.
// 1 stannds
for 0.25 Celsius
Serial.begin(9600);
}
void
loop()
{
Serial.print(ts.getCelsius(),
2);
Serial.print("
C / ");
Serial.print(ts.getFahrenheit(),
2);
Serial.print("
F / ");
Serial.print(ts.getKelvin(),
2);
Serial.print("
K\n");
delay(3000);
}
編譯成功之后,導入proteus仿真軟件進行仿真。通過調節K型熱電偶的溫度值,可以看到串口輸出的溫度數值,串口輸出的溫度值為熱電偶的溫度+MAX6675中設置的冷端溫度!咀ⅰ坷涠藴囟葹25℃,熱電偶溫度為240℃、49℃的仿真圖如圖7、8所示。
【注】由于仿真環境為理想環境,傳感器為理想模型,僅能驗證能否對傳感器進行讀寫操作,初步地驗證程序的正確性。實際測量過程中,測量溫度與實際溫度會有一定的誤差,誤差大小和傳感器、環境等都有關系。