K熱電対アンプモジュール
Maxim Integrated Products, Inc.製の「MAX31855K」ICを使用したadafruit製K熱電対アンプモジュールを使ってみました!
別売のK型熱電対を取付ければArduinoで温度が測れます!
1. K熱電対アンプモジュールとは
1.1 K型熱電対とは
異種金属の組み合わせによりK,J,T,E,N,R,S,B型熱電対等がJIS規格で規定されており、特にK型熱電対は 温度と熱起電力との関係が直線的である事から工業用として最も多く使用されています。
K型熱電対に使用されている金属は、+極に「Ni・Cr合金」、-極に「Ni合金」で、-200~1000℃の範囲で温度測定が可能です。
※1:ゼーベック効果(Seebeck effect)は物体の温度差が電圧に直接変換される現象で、
熱電効果の一種。逆に電圧を温度差に変換するペルティエ効果もある。
1.2 MAX31855Kの仕様
「MAX31855」は、冷接点補償を実行し、K、J、N、T、またはE型熱電対からの信号をデジタル化します。
データは、符号付き14ビット、SPI?対応の読取り専用形式で出力されます。
このコンバータは、温度を0.25℃まで分解するため、最高+1800℃と最低-270℃の読取りが可能となり、K型熱電対の場合-200℃~+700℃の温度範囲で±2℃の熱電対精度を示します。
またK熱電対アンプモジュール(MAX31855K)の外観及び端子図を図1に、各端子の接続先を表1に示します。
図1:K熱電対アンプモジュール(MAX31855K)の外観及び端子図
MAX31855K端子 | アンプモジュール端子 | ArduinoUNO端子 |
SO | DO | MISO(12ピン) |
CS | CS | SS(ANY) |
SCK | CLK | SCK(13ピン) |
2.1 ライブラリの入手
GitHubのサイトに「adafruit/Adafruit-MAX31855-library」が公開されています。
図2のサイトにアクセスし、画面右側に有る緑ボタン「Clone or download」→「Download ZIP」の順にクリックし、ライブラリをダウンロードします。
2.2 フォルダ名変更
ダウンロードしたZIPファイル「Adafruit-MAX31855-library-master」を開くと中に「Adafruit-MAX31855-library-master」フォルダがありますのでこれをデスクトップ等に取り出して解凍します。
取り出したファイルの名前から「-master」の部分を削除しておきます。
図3:インストール用のライブラリフォルダを準備
2.3 ライブラリのインストール
インストールは簡単で、ArduinoIDEがインストールされているフォルダ中の「libraries」フォルダの中に図3で名前を変更したライブラリフォルダを入れるだけです。
図4:ArduinoIDEの「libraries」フォルダ
2.4 インストールの確認
図4の操作で正常にライブラリがインストールされていれば「MAX31855」を使用したスケッチの例(サンプルプログラム)もインストールされます。
確認の為に図5の様にArduinoIDEを起動し、「ファイル」→「スケッチの例」→「Adafruit-MAX31855-library」とクリックし、「serialthermocouple」を開ければインストールはOKです
図5:スケッチの例「serialthermocouple」
3. 準備
3.1 はんだ付け
K熱電対アンプモジュール(MAX31855K)に付属のピンヘッダ6本とターミナルを図6の様にはんだ付けしておきます。
図6:はんだ付け!
3.2 K熱電対
K熱電対は秋月電子さんの「K熱電対プローブ」を購入しました。
そのままではK熱電対アンプモジュール(MAX31855K)のターミナルに取付け出来ませんので、図7の様に分解し、極性が分からなくならない様に「-」側に黒マジックで印を付けておきました。
図7:「K熱電対プローブ」分解
3.3 接続
また実際に繋げた状態を図9に示します。
図9:実際に作ったもの
3. プログラム
ArduinoUNOに書き込むプログラムは図10の通りです。
基本的には図5で読み込んだスケッチの例を元にしています。
図9のArduinoUNOをPCに接続し、図10のプログラムを書き込みます。
#include <SPI.h> #include "Adafruit_MAX31855.h" //ソフトウェアSPIもしくはハードウェアSPIを使用する2つ接続方法があります。 //①任意の3つのソフトウェアSPIを使用して熱電対のインスタンスを作成する例 #define MAXDO 3 #define MAXCS 4 #define MAXCLK 5 Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO); //②ハードウェアSPIを使用して熱電対のインスタンスを作成する例 // 指定されたCSピンに接続します。 #define MAXCS 10 Adafruit_MAX31855 thermocouple(MAXCS); void setup() { Serial.begin(9600); while (!Serial) delay(1); //シリアル通信が開始されるのを待つ Serial.println("MAX31855 test"); delay(500); }//MAXチップが安定するのを待つ void loop() { // 基本的な読み取りテスト、ちょうど現在の温度を印刷する Serial.print("Internal Temp = "); Serial.println(thermocouple.readInternal()); double c = thermocouple.readCelsius(); if (isnan(c)) { Serial.println("Something wrong with thermocouple!"); } else { Serial.print("C = "); Serial.println(c); } delay(1000); }
図1:プログラム例
4. まとめ
「Adafruit-MAX31855-library」ではソフトウェアSPI通信もサポートしているので、今回はソフトウェアSPI通信でMAX31855Kと接続しました。
励みになりますのでよければクリック下さい(^o^)/