Arduino(18) 熱電対を使ってみました
熱電対を使ってみました
概要
熱電対とは、異なる材料の2本の金属線を接続して1つの回路(熱電対)をつくり、ふたつの接点に温度差を与えると、回路に電圧が発生するという現象がおきます。この現象は、1821年にドイツの物理学者トーマス・ゼーベックによって発見され、ゼーベック効果と呼ばれています。熱起電力は、組み合わせる金属の種類と両接点の温度差には依存するものの、構成するふたつの金属の形状と大きさには関係しないため、この現象を利用した多くの温度検出端が開発されました。一般にこの現象を利用した温度検出端を熱電対といいます。
利用した熱電対は、アマゾンで購入した物です。
K型熱電対のセンサーです。K型の熱電対は、クロメル(ニッケルおよびクロムを主とした合金)とアルメル(ニッケルを主とした合金)の二種の金属を利用した熱電対で、温度と熱起電力との関係が直線的であり、工業用として最も多く使用されているものです。理論的には、-270℃ ~ 1372℃の温度範囲の測定が可能です。
アマゾンで購入したK型熱電対のモジュールには、マキシム社のMAX6675というICが使われていて、少し古いタイプのICです。今は、後継デバイスのMAX31855やMAX31856が使われることが多いと思います。性能も格段に向上しているようです。ArduinoとはSPIインターフェースで接続します。
SPIについては別の記事に記載したいと思っています。
回路図
スケッチ
#include int readDATA;//MAX6675のデータ格納変数 SPISettings MAX6675Setting (4000000, MSBFIRST, SPI_MODE0); void setup() { SPI.begin(); Serial.begin(9600); } void loop() { SPI.beginTransaction(MAX6675Setting); digitalWrite(SS,LOW); readDATA=SPI.transfer(0xFF) << 8; readDATA=readDATA+SPI.transfer(0xFF); digitalWrite(SS,HIGH); SPI.endTransaction(); Serial.print(readDATA,HEX); Serial.print(", "); Serial.print(readDATA>>3); Serial.print(", "); Serial.print(readDATA>>3,HEX); Serial.print(", "); Serial.print((readDATA>>3)*0.25); Serial.println(" ℃"); delay(1000); } [/C]結果の表示 左から元データ、10進表示、16進表示、