温度センサ MAX6675

(2019.4.25 作成)

(2019.6.30 更新)

(2019.7.15 更新)

MAX6675について

 MAX6675はMAXIM integrated社の販売している熱電対を用いた温度センサのコントロールICです。

 このページでは右のリンク写真のように基板に乗せられたモジュール状態のものを扱っています。

 このモジュールですが、記事執筆時点では日本のAmazonで400円前後、中国のAliexpressで約100円で販売されており、とても安価に使用できます。


 ただこのMAX6675ですが、こちらで比較していますように同社のMAX31855に比べて機能的に劣っているように思いますので、新規で購入される場合はMAX31855の購入をおすすめします。

オープン検出

 さて早速このモジュールについてですが、熱電対のオープンエラーを検出する機能があります。この機能を有効にするにはT-ピン(Pin2)をGND(Pin1)に接続する必要があるのですが、このページで紹介している基板では残念ながら接続されていません。

 有効にするには右写真の様にICの足をショートさせることでこの機能を有効にすることができます。

 ちなみにこの機能を有効にし、オープン状態で計測すると読みだしたデータのbit2が1になり、エラーを認識できるようになります。

準備 / 使い方

 ArduinoではIDEからダウンロードできるAdafruitさんのMAX6675-Libraryを使用することで簡単に利用できます。

 ただしAdafruitさんのライブラリの例ではGPIOピンから電源を取るように書かれています。確かに消費電流も少なく、それでも実際に動くのですが、もともと別のスケッチがArduinoに書き込まれていた場合などに不用意に壊しかねないのでお勧めしません。サンプルはあくまで見るだけにとどめ、実際のコードはそれを参考に作り直すのが良いと思います。

 実際に管理人が作成した例としては以下のダウンロードリンク内にサンプルスケッチがあります。このArduinoスケッチを使用すると2chでの測定データがシリアルモニタに確認できます。

 ただしそれだけだと使い勝手が悪いので、受信してグラフを作成する簡単なソフトを作成しました。

<ダウンロード>

上記リンクの中のZIPファイルの中に、MAX6675を使用するArduinoのスケッチ(1ch版、2ch版)、受信ソフトの実行ファイル、およびソースコード(C#)が入っています。

 使い方はおそらく説明する必要がないと思います。とても簡単に使用することができると思います。Arduinoのスケッチを少し変更するとMAX31855でも使用することができると思います。またCh数ですが動作確認はしていませんが、一応最大8chまで対応するつもりで受信ソフトは作成しています。

測定例

 せっかくなのでペルチェ素子の両面に熱電対を貼り付けてどの程度の温度差が発生するのか試してみました。

 測定開始後5分でペルチェに200mA電流を流し、約10分強立ったところでペルチェの電源を切っています。その測定結果が下のグラフになります。

 ペルチェの両面で約7度の温度差が発生していることが分かります。 電源を入れた直後は確かに冷却側は冷えるのですが、残念ながら時間がたつとジュール熱で温まるため、次第に冷却側の温度が上昇してゆき、結果として電源投入前の温度になっています。”なんじゃそれ!?”って感じですね。

 さて実際に使ってみた感想ですが、上の測定例を見ていただくとわかるのですが

  • 測定周期は200ms以上必要です。今回のように急激に温度が変化する場合は応答速度に難ありかもしれません。
  • 温度分解能は0.25度ですが、値は一定しておらずばらつきが大きいかなと感じました。精密に測りたい場合は別の手段がいいかもしれません。

 ただ値段も十分安く、Ch数も容易に増やすことができるので応用範囲は広い温度センサだと感じました。

コメント: 0