2014年3月21日 星期五

[Arduino] 溫度感應器 Temperature Sensor - TMP35/36/37

IMG_20140320_215404~2

什麼是溫度感應器,簡單來說就是一組可以告訴你現在溫度是多少的元件!在 Arduino Starter Kit 裡面使用的 Analog Devices 的 TMP36datasheet 在此~

TMP35 這類溫度感應元件,並不是像溫度計一樣用水銀偵測溫度高低,而是將室溫轉換成電壓訊號,方便我們應用。

簡單介紹一下 TMP3x 系列的基本功能,首先外觀的三隻腳功能如下:
image
  1. Vs:提供零件操作用的電源,可接受 2.7V ~ 5.5V 的輸入電源,Arduino Uno 提供的 5V 電壓剛好可以提供這個感應器所需操作電源。
  2. Vout : 根據偵測到的環境溫度 TMP 會輸出對應的電壓大小,兩者關係基本上是線性的,所以很好推算。
  3. GND:元件接地 pin

溫度與輸出電壓關係:
image
以 TMP36 為例子 在 10℃ ~ 125℃的範圍內,每升高 1℃ 的溫度 output 電壓就升高 10mV,在25℃ 的時候,輸出電壓為 750mV。 換算成公式就是:

Vout = 750+(Temp-25)*10
Temp = (Vout in mV-500)/10

整理 TMP3x 系列公式如下:
image

在 Arduino 上的基本接法:
image


Arduino 上的 A0 (Analog Read) 會將讀取到的類比訊號轉換成 0~1023 的數字,代表 0~5 V。我們可以用 Arduino 上的 map 功能將讀取到的數字轉成電壓。

map(value, fromLow, fromHigh, toLow, toHigh)

Vout = map(A0, 0, 1023, 0, 5)
/* 將 A0 讀取到的 0~1023 數字,轉換成 0~5V 間的電壓

Temp (℃)= (Vout*1000-500)/10
/* 將電壓轉換成溫度 (℃)

這樣我們就可以應用這個元件做出溫度感應電燈、自動感溫開啟電源,也可以同時裝多個感應 sensor 做出檢測溫度均勻性的檢測裝置了!

沒有留言:

張貼留言

Anything That's Worth Chatting

Related Posts Plugin for WordPress, Blogger...