第1步:關于傳感器
好,傳感器是MCP9700。我能夠以0.2歐元的價格獲得它們。輸出信號是一個模擬張力,范圍為0..5V,這意味著您可以使用微控制器的ADC引腳簡單地獲取溫度。它不需要任何其他部分!溫度范圍為-40至150°C。對于我的項目來說已經足夠好了!!
傳感器有不同的包裝,我選擇了TO-92型號。
傳感器數據表在這里。步驟2:Arduino代碼,接線和首次測試
左針腳:Vdd-》到Arduino 5v
中間針腳:Vout-》到arduino A0針腳
右引腳:GND-》到arduino GND
代碼已附加。這是一個簡單的模擬讀數。為了使測量更準確,我使用一個簡單的循環獲取5個溫度值并計算平均溫度。
在數據表的第11頁上,給出了傳感器傳遞函數公式: Vout = Tc * Ta + V0c
其中:
Vout:輸出張力(從arduino讀取)
Tc:溫度系數
Ta:環境溫度(我們正在尋找該值)
V0c:0°C時的傳感器輸出電壓
最后一個值可以在數據表第3頁的“直流電特性”表中獲得。對于我的傳感器(MCP9700),該值為500 mV。
這意味著,對于我的Arduino,環境溫度公式為:
溫度=(( TensionAnalog/204.8)-0.5)/0.01;
TensionAnalog 是從模擬引腳獲取的原始值。 arduino ADC的范圍是10位,因此5伏特的讀取值范圍是1024(2 ^ 10),0伏特的讀取值范圍是0。因此,要獲得以伏特為單位的值,您需要將模擬值除以1024/5 = 204.8
0.5是以伏特(500 mV)為單位的 V0C 值
0.01是溫度系數 Tc (10 mV/°C)
我在窗口上設置了傳感器和氣象站傳感器,為了比較溫度。
幾分鐘后,我的工作站說環境溫度為26.4。同時,傳感器顯示溫度為24.8°C。我們處于Microchip給出的公差范圍內,但還不夠準確。
讓我們對此進行更改!
第3步:校準
確定,因為我們認為溫度輸出是線性函數,并且溫度系數正確,所以我們需要修改 VoC 的偏移量。/p》
與傳感器值有關的“精確”溫度傳感器(我的氣象站參考)平均而言(通過Excel計算平均值)高1.98°C。
實際的 V0C 偏移為500mV,因此這意味著新的偏移應為500-1.98,即480.2。
我現在的新溫度公式為:
TemperatureMoyenne = TemperatureMoyenne +((((TensionAnalog/204.8)- 0.4802 )/0.01);
相同的安裝,現在的新結果更好。
第4步:結論
我們已經看到了如何比較廉價傳感器獲取的溫度以使其更加準確。當然,我的校準技術不是很好,因為我想輸出信號是完全線性的,我沒有考慮自熱的影響,傳感器是黑色的,我的氣象站傳感器是白色的,所以,不是很好。
Microchip在數據表的第11頁上說,可以通過在25°C下校準傳感器來提高精度(剛剛完成)。
但是請記住,該芯片的價格為0.2歐元,我真的不需要令人難以置信的精度。此處描述的方法只是獲取更好值的一種方法,而并非完全準確的值。如果是精確的話,只需要一個熱電偶或更精確的(和昂貴的)傳感器即可!
最后一句話:校準后幾個小時,我們猛烈地打雷(我的氣象站是對的^^)。溫度下降到18°C,傳感器的值還可以。。..!
-
溫度傳感器
+關注
關注
48文章
2940瀏覽量
156025
發布評論請先 登錄
相關推薦
評論