2007年06月20日

Arduino

Flashで、温度センサーを使う

今回は、LM35温度センサICをつかう。
ondo.jpg

ondo_1.jpg

LM35の特徴は、
温度係数はリニアで+ 10.0mV/ ℃
気温、28度のとき、28X0.01=0.28Vになる。
数値が細かいので、オペアンプで値を増幅する必要がある。

通常のオペアンプは、5V電源を使ったとき、出力が最大4Vになるが、
今回のオペアンプは、Rail to Rail機能のあるLMC6032を使って、
最大5Vまで出力させる。
ondo_2.jpg

増幅率は、2つの抵抗の比率で変えることができる。
OUT=IN×(1+R1/R2)
onndo_z.gif

今回は、気温40度程度まで計れればいいので、
5/(40X0.01) = 12.5倍程度の増幅率でいいことになる。
手元にある部に品で、R1=10kΩ、R2=1kΩを選び、11倍の増幅率になるようにした。

Arduinoのソースはここと同じ

Flashのソース
受信して、少数を表示できるように計算した。

import Arduino;

// 環境に合わせて、ポートを設定する。
// COM1:5331、COM2:5332、COM3:5333、COM4:5334、COM5:5335、COM6:5336
var port:Number = 5333;

var arduino:Arduino = new Arduino(port);

listenObj = new Object();

// データを受信
listenObj.onReceiveData = function(evtObj:Object){
	var msg = evtObj.data;
	var temperature = Math.floor(Number(msg)*5/(1024*11*0.01)*10);	// 少数計算のため10をかけている
	temperature /= 10;								// 後から、10を割って小数一桁を計算する
	box.text = temperature ;		// テキストボックスに表示
}

// リスナー登録
arduino.addEventListener("onReceiveData", listenObj);