サーミスタを使った温度測定: Arduinoステップバイステップガイド
部品と材料
| 部品 | 数量 |
|---|---|
| サーミスタ NTC 10K | 1 |
| 抵抗 10kΩ | 1 |
| Arduino UNO | 1 |
| ジャンパーワイヤー (汎用) | 1セット |
| ブレッドボード (汎用) | 1 |
アプリとオンラインサービス
- Arduino IDE
- Arduino Web Editor
プロジェクト概要
サーミスタとは?
サーミスタ (Thermistor) は、温度によって抵抗値が変化する抵抗器の一種です。主に2種類あります:
- PTC (Positive Temperature Coefficient): 温度上昇で抵抗増加
- NTC (Negative Temperature Coefficient): 温度上昇で抵抗減少
本記事では NTC タイプを使用します。
少しの数学: 温度計算の原理
NTCサーミスタの抵抗値から温度を求めるには、B定数式 (parameter B equation) を使用します:
R_T = R_0 * exp(B * (1/T - 1/T_0))
各パラメータ:
e: 自然対数の底R_0: 基準温度T_0での抵抗値B: 材料固有の定数 (単位: K)、データシートに記載
実際の回路では分圧回路を構成し、オームの法則でサーミスタ抵抗 R_T を求めます:
R_T = V_RT / ( (V_CC - V_RT) / R )
ここで V_RT はサーミスタ両端電圧、V_CC は電源電圧、R は既知の分圧抵抗 (10kΩ) です。
最終的に温度 T (ケルビン) を計算:
T = 1 / ( (ln(R_T / R_0) / B) + (1 / T_0) )
注意: すべての温度パラメータ (T_0 等) は計算前にケルビン (℃ + 273.15) に変換してください。結果もケルビンで得られます。
実装結果
ブレッドボード上で回路を組み、シリアルモニターに温度 (℃, K, ℉) を500ms間隔で出力する様子を写真で確認できます。
コード
// サーミスタ温度計
/* サーミスタパラメータ (データシート記載値):
* RT0: 10,000 Ω
* B: 3977 K ±0.75%
* T0: 25 ℃
* ±5%
*/
#define RT0 10000 // Ω
#define B 3977 // K
//--------------------------------------
#define VCC 5 // 電源電圧
#define R 10000 // 分圧抵抗 10kΩ
float RT, VR, ln, TX, T0, VRT;
void setup() {
Serial.begin(9600);
T0 = 25 + 273.15; // データシートのT0をケルビン変換
}
void loop() {
VRT = analogRead(A0); // A0ピンのアナログ値取得 (0-1023)
VRT = (5.00 / 1023.00) * VRT; // 電圧値に変換 (0-5V)
VR = VCC - VRT; // 分圧抵抗の電圧降下
RT = VRT / (VR / R); // サーミスタ抵抗値計算
ln = log(RT / RT0); // 自然対数
TX = (1 / ((ln / B) + (1 / T0))); // ケルビン温度計算
TX = TX - 273.15; // 摂氏変換
Serial.print("Temperature:");
Serial.print("\t");
Serial.print(TX);
Serial.print("C\t\t");
Serial.print(TX + 273.15); // ケルビン
Serial.print("K\t\t");
Serial.print((TX * 1.8) + 32); // 華氏
Serial.println("F");
delay(500);
}
回路図
ブレッドボード配線図と回路図が提供されています。サーミスタと10kΩ抵抗で分圧回路を構成し、接点をArduino A0ピンに接続します。
製造プロセス
- OpenSensorsで空気質を測定: ArduinoとPythonによるガイド
- カッターグラインダー技術の習得:実践ガイド
- サイトナビゲーション完全ガイド:DXFファイルの追加、購入、ダウンロード
- Azure DevOps活用:デリバリー加速のための実証済みプラクティス
- モリブデンが現代産業を形作る仕組み:用途、利点、需給動向
- 消火ブランケットの正しい使い方:迅速・安全・効果的な初期消火
- VHDLにおける不純関数の活用:FSMの可読性と保守性向上
- VHDL関数マスター:効率的な設計のための実践ガイド
- VHDLプロシージャ活用:再利用可能なコードで設計をシンプルに
- VHDLのWhileループをマスター:動的な反復制御
- VHDLのForループ完全ガイド:実践的な使い方