2017年5月12日 IoTセミナー 後書き「温度センサでLEDランプを操作する!」

こんにちは

エンジニアのMです。
今回はArduinoで温度計測をしてみたいと思います。
用いる温度センサはLM35DZです。

アマゾンで売っているArduinoエントリーキットにも入っているものですね。

開発環境としては
Windows 10 64bit
ArduinoIDE 1.8.2
を用います。

それでは温度センサについて見ていきましょう。
今回用いるLM35DZは非常に扱いやすい温度センサになっています。
データシートを見てみましょう。
http://akizukidenshi.com/catalog/g/gI-00116/
このセンサは気温に応じて電圧を出力するセンサになります。
特徴の部分に温度係数はリニアで+10.0mV/℃と書かれていますね。
これはつまり温度1度あたりの出力される電圧値の変化量が10mVということです。
つまりつまり0℃の時は0V、1℃の時は10mV、10℃の時は100mVになります。
グラフにするとこうなります。

関係式が線形(リニア)なので計測値を出すための関係式がとても作りやすいです。
実際に作成していきましょう。

Arduinoでのアナログ入力は0~1023の値として読み込まれます。
電圧が5Vの時、Voutから出力される値は1024なので

V:5 = Vout:1024

という関係になり、変形して

V = (5*Vout)/1024

これで電圧値が求められます。

また[mV]と[℃]の単位を合わせるために100をかけて
温度の計算式を出すと

temp(温度) = ((5 * Vout) / 1024) * 100

となります

それではプログラムを書いていきましょう

// 温度センサーの値をシリアルモニタに表示するプログラム
int Vout; //アナログ入力値
int temp = 0; //温度の値の初期化

void setup() {
Serial.begin(9600); //シリアル通信の速度
}

void loop() {
//アナログピンから電圧値を取得
Vout = analogRead(A0); //アナログ0番ピンから値を取得
//入力値を温度に変換
temp = ((5 * Vout) / 1024) * 100; //温度の換算式
//温度をシリアルモニタに表示
Serial.println(temp);

delay(1000)

}

回路の作成も行いましょう。

さてArduinoに書き込んでシリアルモニタで見てみましょう。

ばっちり出ていますね!

是非皆さんも挑戦してみてください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする