. AdafruitのMAX31855基板を使った温度測定 - しなぷすのハード製作記
AdafruitのMAX31855基板を使った温度測定 - しなぷすのハード製作記
AdafruitのMAX31855基板を使った温度測定 - しなぷすのハード製作記

AdafruitのMAX31855基板を使った温度測定

ホットプレートでリフローをする際に使う温度制御装置に、 スイッチサイエンス のK型熱電対温度センサモジュールキット(SPI接続)MAX6675使用 を使用していたのですが、新しい温度制御装置を設計するにあたって、温度センサモジュールを変更する事にしました。ICメーカー(Maxim社)が、この温度センサモジュールに使われているMAX6675 という熱電対コンバータICを「新規設計用に推奨しない」と明言しているのが主な理由です。MAX6675が市場から消えるのも間近だと思われます。

Thermocouple Amplifier MAX31855 breakout boardは同じMaxim社の新しいIC(MAX31855 )を使用しており、今後も安定して入手できる事が期待できます。この基板は 秋月電子 でもMAX31855使用K型熱電対アンプモジュール という商品名で販売されており、国内でも簡単に入手できます。この記事を書いている時点(2016年8月)での価格は1,620円です。

2. Thermocouple Amplifier MAX31855 breakout boardの紹介

写真1に、秋月電子で購入したThermocouple Amplifier MAX31855 breakout board(MAX31855使用K型熱電対アンプモジュール)の写真を示します。このブレークアウト基板にK型の熱電対とArduinoを接続すると、温度が0.25℃の分解能で読み取れます。

↑ 画像をクリックすると拡大 写真1、Thermocouple Amplifier MAX31855 breakout board ↑ 画像をクリックすると拡大 写真2、製品に含まれる全部品 ↑ 画像をクリックすると拡大 写真3、ブレークアウト基板の裏面

入力電圧やロジックレベルは、"3-5V"と表記されています。商品ページ には"3.3 to 5v"との説明があるので、3.3V以上で使う方が無難です。

3. 基板の組み立て

付属の6ピンのピンヘッダはピンが細めで、基板の裏側に取り付ければ、 ブレッドボード に差し込んで使用できるようになっています。しかし、ブレッドボードでこの基板を利用する予定はなく、後に組み立てる予定の回路の実装上の都合から、L字型のピンヘッダ を、基板の表側に取り付ける事にしました。

↑ 画像をクリックすると拡大 写真4、組み立て済みのブレークアウト基板

4. 熱電対の入手と加工

Thermocouple Amplifier MAX31855 breakout boardには熱電対自体は付属しませんので、別に購入する必要があります。この時、必ずK型の熱電対を購入してください。熱電対には、その素材により色々なタイプがあり、K型、E型、J型、T型などと、アルファベットで区別されています。間違った型の熱電対をブレークアウト基板に接続して温度測定を行うと、正しい測定結果が得られません。

秋月電子では、先端部分で素線がむき出しのタイプ と、素線がステンレス管で保護されたタイプ (写真5)の2種類のK型熱電対を取り扱っています。ブレークアウト基板と同時に購入するなら、目的に応じて、これらのいずれかの熱電対を購入すればいいでしょう。ステンレス管タイプの熱電対は使用温度範囲が-200℃から+600℃と、素線がむき出しのタイプ(-200℃~+1,250℃)よりも狭くなっていますので、購入時にはこの事を考慮する必要があります。

↑ 画像をクリックすると拡大 写真5、秋月電子のステンレス管タイプのK型熱電対 ↑ 画像をクリックすると拡大 写真6、妙楽堂で購入した熱電対 ↑ 画像をクリックすると拡大 写真7、妙楽堂の熱電対に付いているコネクタ ↑ 画像をクリックすると拡大 写真8、熱電対のコネクタのカバーを外した様子 ↑ 画像をクリックすると拡大 写真9、コネクタを取った熱電対に取り付けた、極性を表すタグシール

写真9の状態になると、ブレークアウト基板のターミナルブロックに接続できる様になります。素線同士がショートしないように長さを調節したうえで、 ターミナルブロックに挿入し、精密ドライバでねじ止めしてください。この際、ブレークアウト基板の極性表示と、熱電対の極性表示が一致する様に接続してく ださい。(写真10参照)

↑ 画像をクリックすると拡大 写真10、ターミナルブロックに接続した熱電対

5. ライブラリのインストール

ライブラリのインストール法については、まず追記の方をお読みください。

Arduinoでこのブレークアウト基板を使用するには、 Arduino IDE に、Adafruitが公開しているMAX31855用のライブラリをインストールする必要があります。ライブラリは、GitHubのこちらのページ で公開されています。

ライブラリをダウンロードするには、Clone or downloadと書いたボタンをクリックし、その時開くポップアップウィンドウで、Download ZIPのボタンをクリックします。(図1参照)

図1、ライブラリのダウンロード

ファイルがダウンロードできたらArduino IDEを起動します。今回はArduino IDE 1.6.11を使用しました。

スケッチ→ライブラリをインクルード→.ZIP形式のライブラリをインストール. メニューを選択し(図2参照)、開いたウィンドウでダウンロードしたZIPファイルを選択し、開くボタンをクリックします。(図3参照) そうすると、Arduino IDEのウィンドウ下部に「ライブラリが追加されました。『ライブラリをインクルード』メニューを確認してください。」というメッセージが出ます。(図4参照) これでライブラリのインストールは完了です。

図2、.ZIP形式のライブラリをインストール. メニューを選択 図3、ダウンロードした.ZIPファイルを選択 図4、インストール終了時のメッセージ

インストールができたことを確認するには、スケッチ→ライブラリをインクルードメニューの下に、Adafruit MAX31855 libraryの選択肢が出てくるのを確認してください。(図5参照)

図5、ライブラリがインストールされている事を確認 2020年3月3日追記

読者からの問い合わせがきっかけで分かったのですが、Adafruitが発表しているMAX31855のライブラリの最新版(Version 1.1.1)は、Bus IO という、別のライブラリに依存しています。そのため、MAX31855のライブラリだけをArduino IDEにインストールしても、スケッチのコンパイルが通りません。(図6参照)

図6、AdafruitのMAX31855用ライブラリのみをインストールしてスケッチのコンパイル時にエラーが出た例

この図は、後ほど紹介するserialthermocoupleスケッチのコンパイル中に出たエラーメッセージをキャプチャーした物です。Adafruit_SPIDevice.hがないというエラーが出ています。Adafruit MAX31855 libraryに付属するスケッチの例なのに、Adafruit MAX31855 library単独ではコンパイルできません。また、他にBus IOライブラリが必要だというコメントも、サンプルスケッチ中のコメントなどに書いてありません。

参考:追記部分の説明は、Arduino IDE 1.8.9を用いて行います。

・古いバージョンのMAX31855用ライブラリをインストールする方法

先ほどは、GitHubからライブラリをダウンロードしてインストールする場合について説明しましたが、現在では、Arduino IDEのライブラリマネージャからAdafruit MAX31855ライブラリがインストールできる様になっているので、そちらを使います。

まずライブラリマネージャを開きます。開くには図7に示す様に、ツール→ライブラリを管理…メニューを選択してライブラリマネージャを起動します。

図7、ツール→ライブラリを管理…メニューを選択してライブラリマネージャを起動

ライブラリマネージャが起動したら、図8に示す様に、右上の検索窓にmax31855と入力してAdafruit MAX31855 libraryを検索し、バージョンを選択するプルダウンメニューでバージョン1.0.0を選択します。その後、インストールボタンをクリックすると、Adafruit MAX31855 library 1.0.0がインストールされます。

図8、ライブラリマネージャでMAX31855用ライブラリを検索してバージョン1.0.0を選択している様子

この図は、Adafruit MAX31855 library 1.1.1が既にインストールされている状態で画面をキャプチャした物なので、バージョン1.1.1 INSTALLEDの表示が出ていますが、まだこのライブラリをインストールしていない人の場合は、この表示が出ません。

・MAX31855用ライブラリの他にBus IOライブラリもインストールする方法

この方法は、Adafruitのブレークアウト基板をよく使う人にお薦めです。SPIやI 2 CインターフェースのAdafruit製ブレークアウト基板のライブラリは、Bus IOライブラリに依存している物が多いので、この機会にBus IOライブラリもインストールしておくといいでしょう。ただし、ブレークアウト基板のライブラリとBus IOライブラリのバージョンの組み合わせには、自分で注意を払う必要があります。

図7に示す様に、ツール→ライブラリを管理…メニューを選択し、ライブラリマネージャを起動します。その後、図9に示す様に、右上の検索窓にmax31855と入力してAdafruit MAX31855 libraryを検索し、バージョンを選択するプルダウンメニューで最新のバージョンを選択します。次にインストールボタンをクリックすると、Adafruit MAX31855 libraryがインストールされます。

図9、ライブラリマネージャでMAX31855ライブラリを検索して最新バージョンを選択している様子

原稿を書いている時点での最新バージョンである1.1.1をインストールしています。この図は、バージョン1.0.0をインストールした状態で撮ったスクリーンショットなので、バージョン1.0.0 INSTALLEDの表示が出ていますが、まだこのライブラリをインストールしていない人の場合は、この表示が出ません。

ライブラリマネージャの検索窓でbusioと入力して、Adafruit BusIOを検索します。そして、Adafruit MAX31855 libraryの時と同じ要領で最新バージョンをインストールします。(図10参照)

図10、Adafruit BusIOをインストールしている様子

6. Arduinoとブレークアウト基板の配線

AdafruitのMAX31855用 ライブラリ は、 ソフトウェアSPI によりデータのやり取りを行います。( Arduino Uno とArduino Megaのみ、 ハードウェアSPI にも対応しています) そのため、Arduinoの任意のピンにMAX31855の信号線を割り当てる事ができます。

Adafruitのライブラリに付属するサンプル スケッチ は、 デフォルト でMAX31855のDOをArduinoの3番ピンに、CSを4番ピンに、CLKを5番ピンに接続する設定になっていますので、今回はそれに従う事にします。

表1 、ブレークアウト基板とArduinoの結線 ブレークアウト基板の端子 Arduinoの端子 Vin 5V(5V動作のArduinoの場合)、 3.3V(3.3V動作のArduinoの場合) 3Vo 接続せず GND GND DO 3 CS 4 CLK 5 ↑ 画像をクリックすると拡大 写真11、オスとメスのヘッダが付いたジャンパ線

今回、ブレークアウト基板の動作試験をするにあたって、Arduino Unoを使用しました。Arduino Unoとブレークアウト基板を結線した様子を写真12に示します。今回は、ブレッドボードは使わずに、L字型ピンヘッダとジャンパ線を接続し、ブレークアウト基板はどこにも固定されていない状態で動作試験を行います。基板の裏面が金属に触れてショートする事がないように、金属くずやねじなどがない机の上で作業する事が重要です。

↑ 画像をクリックすると拡大 写真12、Arduino Unoとブレークアウト基板の配線の様子

7. 動作試験

Arduino IDEを起動し、ファイル→スケッチの例→Adafruit MAX31855 library→serialthermocoupleメニューを選択し、サンプルスケッチを開きます。(図11参照) このスケッチは、MAX31855のIC内部の温度と熱電対の温度を読み取り、シリアル出力に9600bpsで出力するものです。

注:Arduino IDE 1.6.11以外では、メニュー構成が異なる事があります。

図11、サンプルスケッチを開く 図12、温度の測定結果を表示する画面

"Internal Temp ="と表示されるのがIC内部の温度で、"C C center" style="line-height:2; margin-top:0.5em; margin-bottom:0.5em">

このページで使われている用語の解説

関連ページ

  • Arduinoとホットプレートを使ったリフロー装置(2号機)の製作ホットプレートをリフロー用温度制御装置の高機能化。
  • Arduinoとホットプレートを使ったリフロー装置(1号機)の製作ホットプレートを使ってリフローで半田付けする際の自動温度制御をArduinoで行う方法。
📎📎📎📎📎📎📎📎📎📎