はじめに
今回は温度センサLM60BIZを使用して温度計測を行ってみました。
センサの概要や、配線、プログラムコードなどについて記録しておきます。
LM60BIZとは?センサの基本仕様
今回使用するセンサLM60BIZは、Texas Instruments製のアナログ出力型温度センサーです。
温度に応じて出力電圧が変化するため、ArduinoなどのADC(アナログ-デジタル変換)機能付きマイコンで簡単に温度を読み取ることができます。
主な仕様な以下のとおりです。
動作電圧 | 2.7V ~ 5.5V |
出力形式 | アナログ電圧(リニア) |
出力電圧 | 6.25 mV/°C の変化量 (オフセット:424 mVで0°C) |
測定範囲 | -40°C ~ +125°C |
出力電圧範囲 | 約169mV(-40°C)~ 1.0V程度(125°C) |
出力インピーダンス | 非常に低く、直接ADCに接続可能 |
精度 | ±2.5°C以内(全温度範囲) |
パッケージ | TO-92、SOT-23など |
サイズ感はこんな感じ。10円玉と比較してみましたが結構小さいです。

Arduino NANOとの接続方法
Arduino NANOとはこのように配線。電源2本と信号線1本を接続します。
Arduino | センサ | メモ |
+5V | +Vs | 電源 |
A0 | Vout | 信号 |
GND | GND | 電源 |


温度の計算式について
調べたところ、LM60BIZの出力電圧 Voutと温度 Tの関係は以下の式で求められます。
\(T[℃]=\frac{Vout[mV]-424}{6.25}\)
ArduinoのADCは通常10ビット(0〜1023)です。
このことから、基準電圧が5Vのとき、1カウント ≒ 4.88mVとなります。
したがって、Arduinoで取得したADC値(たとえば analogRead()
)から温度を求める式は:
\(T[℃]=\frac{(analogRead×5.0/1024.0)×1000-424}{6.25}\)
となります。
この内容をプログラムに書き込めば電圧値を温度に変換して取得することができます。
プログラム例
先の内容を踏まえて実際に温度を取得してみます。
const int sensorPin = A0; // センサー接続ピン
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(sensorPin); // ADC値を取得(0〜1023)
float voltage = sensorValue * 5.0 / 1024.0; // 電圧に変換(5V基準)
float temperatureC = (voltage * 1000 - 424.0) / 6.25; // 温度に変換(mV単位で計算)
Serial.print("温度: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000); // 1秒ごとに更新
}
動作結果の確認(シリアルモニタ)

シリアルにて結果を確認しました。結果より、無事に温度表示をすることはできました。
しかし、表示される温度は実際よりも高くなってしまいました。

現在の気温は25℃付近ですので、ざっと5℃ほど高い印象…
この問題を解決しないと、温度計として使うことはできません。
まとめ
という事で、その1はここまで。
次回、その2では、なぜ温度誤差が生じたのか?を考察しながら、対策方法をまとめていきます。
<続、その2はこちらから>
準備中…
参考リンク、使ったもの
- TI公式 LM60BIZ データシート
- Arduino Nano互換ボード(ATmega328P)(Type-B/Type-C)
電子工作ステーションにて購入 \890
- 高精度IC温度センサー LM60BIZ
秋月電子:販売コード 102490
コメント