Arduino Portenta H7にMAX6675でサーモカップル温度センサーを接続する
部品と材料
| 部品 | 数量 |
|---|---|
| Arduino Portenta H7 | 1 |
| テストアクセサリー:サーモカップルとアダプター | 1 |
| SparkFunサーモカップルブレークアウト MAX31855K | 1 |
アプリとオンラインサービス
- CircuitMaker by Altium
プロジェクト概要
高温サーモカップルをArduino Portenta H7に接続し、MAX6675サーモカップル-デジタル変換ICを活用するチュートリアルです。PortentaのデュアルSPIポートが堅牢なインターフェースを提供し、MAX6675は12ビット分解能で1024°Cまで対応——産業グレードの温度監視に最適です。
学習内容
- サーモカップルの発電原理と温度による電圧変化
- MAX6675 ICの選定とPortenta H7のSPIバスへの配線
- Arduino IDEでのセンサーデータ解釈とシリアルモニターでの可視化
必要な材料
- Arduino Portenta H7
- K型サーモカップル(SparkFun MAX31855Kブレークアウト経由)
- Portenta Throneボード(デュアルSPIヘッダー搭載カスタムPCB)
- 標準0.1µFデカップリングコンデンサー
- センサー挿入用4ピンねじ端子ブロック
サーモカップルセンサーの仕組み

サーモカップルは異種金属2線を一端で接合したもの。接合部(測温接点)が加熱されると、接合部と基準端(冷接点)の温度差に比例した熱電圧が発生します。この電圧は極めて微小(通常数mV)なため、マイコンで読み取るには増幅とデジタル化が必要です。
K型サーモカップル(クロメル-アルメル)は産業用温度センシングの定番。−200°C〜1260°Cをカバーし、MAX6675のような適切なコンバーターと組み合わせれば典型的に±1°Cの精度を達成します。
センサーハードウェア要件

MAX6675はPortenta H7と同じ3.3Vレールから給電し、0.1µFデカップリングコンデンサーをICのVCCピン直近に配置。サーモカップル線はブレークアウトボードの専用ねじ端子に極性を守って挿入(赤=正極)。
Throneボード回路図

Altium DesignerでPortentaの2つのSPIバスをカスタムThroneボード上のMAX6675 ICにルーティング。第1SPIインターフェース(HDコネクター2のピン38、40、42)が第1MAX6675を、第2SPI(HDコネクター1のピン33、59、61)が第2ICを担当。トレース幅とデカップリング配置はMAX6675データシート推奨に準拠。

組み立ては簡単——精密はんだごてでMAX6675とデカップリングコンデンサーを実装し、サーモカップルをブレークアウトのねじ端子で固定。


センサー接続ピン
サーモカップル配線時はメーカーの極性表示を遵守:赤線が+、黒線が−。センサーをブレークアウトのねじ端子に接続後、ブレークアウトのVCC、GND、DO、CS、SCKピンを回路図通りにPortentaヘッダーへ接続。
ソフトウェアとテスト
ArduinoスケッチはAdafruit MAX6675ライブラリでSPI通信。PortentaオンボードLED(PC_7)を視覚フィードバック用に初期化後、摂氏/華氏温度を毎秒シリアル出力。


スケッチ書き込み後、ホットプレートでサーモカップルを加熱するとシリアルモニターに安定した温度上昇が表示され、SPI通信と変換精度の正常動作を確認。


以上で本プロジェクトは完了。センサーとPortentaの多機能I/Oで継続的な実験を重ね、組み込みスキルを深めてください。Happy hacking!
コード
- Untitled file
Untitled file
// パブリックドメイン例 - MAX6675クイックデモ
// Source: www.ladyada.net/learn/sensors/thermocouple
#include "max6675.h"
// Portenta H7のSPIピン(必要に応じて調整)
const uint8_t thermoCLK = 9;
const uint8_t thermoCS = 8;
const uint8_t thermoDO = 10;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
pinMode(PC_7, OUTPUT); // オンボードLED
digitalWrite(PC_7, HIGH);
delay(500);
digitalWrite(PC_7, LOW);
delay(500);
Serial.begin(9600);
Serial.println("MAX6675 test");
delay(500); // チップ安定待ち
}
void loop() {
float tempC = thermocouple.readCelsius();
float tempF = thermocouple.readFahrenheit();
Serial.print("C = ");
Serial.println(tempC);
Serial.print("F = ");
Serial.println(tempF);
// 30°C超過でLED点灯
digitalWrite(PC_7, tempC > 30 ? HIGH : LOW);
delay(1000);
}
回路図
完全な回路図とPCBレイアウトは同梱のPDFファイルを参照してください。
製造プロセス
- 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
- GY-91モジュールでRaspberry Pi上に堅牢な温度・センサーAPIを構築
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- Raspberry Piでセンサーとアクチュエータを制御:加速度計、サーボ、データストリーミング
- Raspberry Pi、DHT11、ThingSpeakで作る初めてのIoTプロジェクト
- Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
- 湿度センサーの検証とキャリブレーションで精密測定を実現
- Raspberry Piでホームセキュリティシステムを構築:PIRモーション検知+カメラメール通知
- Windows 10 IoT CoreとSHT15センサーで高精度な温湿度モニタリング