Menu
CoddyTech

サーミスターの温度

CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 20/24。

サーミスタは、温度によって抵抗値が変化する抵抗器です。このモジュール(NTCタイプ)では、温まるにつれてOUTピンの電圧が下がります。analogRead()は25度Cで約512を返します。

読み取り値は直線的には下がらないため、map()では対応できません。ベータ方程式を使うと、温度を度数に変換できます。BETAは部品のデータシートから得られます(ここでは3950)。また、log()はボードに組み込まれている数学関数です。計算の仕組みを理解する必要はありません。次の行をそのままコピーしてください。

const float BETA = 3950;

float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;

1023.0の.0は残してください。整数同士で1023 / readingを計算すると小数部分が切り捨てられ、答えが何度もずれてしまいます。

challenge icon

チャレンジ

中級

サーミスタモジュールは A0 に接続されています。温度を出力しましょう。

  • ベータ方程式を使って読み取り値を摂氏に変換します
  • Serial.println() で毎秒2回出力します

実行を押し、ボードの温度を変更してから、確認を押します。

自分で試してみよう

const float BETA = 3950;  // サーミスタのベータ値

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // reading を摂氏温度に変換して出力する
  delay(500);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ディスプレイとセンサーのすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド