🤖
エンジくん
Arduinoで気温が測れるって知ってた?今日はTMP36という温度センサーを使って、気温をリアルタイムで表示する温度計を作ろう!
1このレッスンで学ぶこと
- 🌡️ TMP36センサー — 電圧で温度を伝えるアナログ温度センサー
- 🔢 float型 — 25.4℃のような小数点を扱う
- 📐 変換の計算式 — アナログ値→電圧→℃の3ステップ
- 🚨 温度アラーム — 設定℃を超えたらLEDを光らせる
- 🎮 温度計シミュレーター — スライダーで温度を変えてみよう!
2用意するもの
3TMP36センサーってなんだろう?
TMP36は温度に応じた電圧を出力するセンサーです。温度が1℃上がると電圧が10mV(0.01V)高くなります。
TMP36
5V
Vout→A0
GND
平らな面を前にしたとき
左から 5V・Vout・GND
⚠️ 向きに注意!
センサーの平らな面を手前に向けて差します。逆にすると壊れることがあるよ!
📐 温度の計算式
T = (V − 0.5) × 100
V = アナログ値 × 5.0 / 1023.0
🔢 アナログ値から温度への変換ステップ
1
int raw = analogRead(A0);
センサーの生の値を読む(0〜1023)
2
float volt = raw × 5.0 / 1023.0;
生の値を電圧(V)に変換
3
float temp = (volt − 0.5) × 100.0;
電圧から温度(℃)を計算
4コードを見てみよう
const int SENSOR = A0;
const int LED = 9;
const float ALERT = 30.0; // 何℃でアラーム?
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int raw = analogRead(SENSOR);
float volt = raw * 5.0 / 1023.0;
float temp = (volt - 0.5) * 100.0;
Serial.print("気温: ");
Serial.print(temp, 1); // 小数1桁
Serial.println(" ℃");
if (temp > ALERT) {
digitalWrite(LED, HIGH); // アラームLED ON
Serial.println("⚠️ 高温注意!");
} else {
digitalWrite(LED, LOW);
}
delay(1000); // 1秒ごとに計測
}
💡 Serial.print(temp, 1)の「1」は小数点以下の桁数です。temp, 2にすると25.45のように2桁表示になります!
5回路のつなぎ方
6実際につないでみよう!
7クイズに挑戦!
🤖
エンジくん
TMP36の変換式とfloat型はしっかり覚えよう。センサー系の基本だよ!
クイズを読み込み中…
8温度計シミュレーター 🌡️
🤖
エンジくん
スライダーを動かして仮想のTMP36センサーを操作してみよう!温度が30℃を超えるとアラームが鳴るよ!
🌡️ 温度センサーシミュレーター — スライダーを動かそう!
🌡️
25.0℃
512
analogRead() 値 (0〜1023)
0.750V
Vout 電圧
25.0℃
計算された温度
✅ 正常
アラーム状態(30℃超え)
9まとめ
- ✅ TMP36は温度→電圧に変換するアナログセンサー
- ✅
float型で小数点の温度を扱える - ✅ 変換式:
temp = (volt − 0.5) × 100.0 - ✅
Serial.print(temp, 1)で小数1桁まで表示 - ✅
if (temp > ALERT)で温度アラームが作れる!