= MAX6675 K型熱電対温度センサのスケッチ = * [wiki:MAX6675 概要についてはこちら。] * [wiki:MAX6675Instruction 作り方の説明はこちら。] * [http://www.switch-science.com/products/detail.php?product_id=146 キットとして販売しています。] どんなスケッチ(ソフトウェア)で使うのかを説明します。 すでにモジュールが完成していて、Arduino Uno (Arduino Duemilanove) のデジタル8番~13番の位置に差し込んであるものとします。 Arduinoのデジタル8番がモジュールのVCC、Arduinoのデジタル13番がモジュールのSCKになります。 このページの添付ファイル[attachment:MAX6675_10_01.zip 「MAX6675_10_01.zip」]をダウンロードして、展開します。 展開してできたフォルダを、Arduinoのスケッチブックのフォルダに移動します。 スケッチブックのフォルダは、ウィンドウズでは標準は「ドキュメント」(Vista/7の場合)または「マイドキュメント」(XPの場合)の中にある、「Arduino」というフォルダです。 Arduino統合環境を起動して、「ファイル」メニューの「スケッチブック」から「MAX6675_10_01」を探して開いてください。 あとは、普通にArduinoに書き込んで実行します。Serial Monitorを有効にすると、定期的に温度が表示されます。[[BR]] 「Error」と表示された場合は、熱電対がきちんとつながっていないなどの不具合があります。「0.00」と表示された場合は、モジュールが正しく接続されていなかったり壊れていたりする可能性があります。 スケッチの先頭に、以下の定義があります。 {{{ #!c #define VCC 8 #define GND 9 #define SLAVE 10 }}} モジュールをデジタルの8番~13番に直結しない場合は、これらの定義を変更してください。[[BR]] VCCおよびGNDの定義は、デジタルの8番および9番からモジュールに電源供給を行うためです。 こんなずるをしないで、ちゃんと電源に接続する場合は、この2行を削除してください。[[BR]] SLAVEの定義は、SPIで言うところのスレーブセレクトにデジタルの何番を使うかを決めています。 このスケッチはArduinoIDE付属のSPIライブラリを使用しています。 古いArduinoIDEをお使いで、このスケッチが上手く動かない場合は、[attachment:MAX6675.zip MAX6675.zip]をお使い下さい。 === MAX6675_10_01.pde (Arduino 1.0付属SPIライブラリ対応版) === {{{ #!c #include "SPI.h" #define VCC 8 #define GND 9 #define SLAVE 10 void setup() { #ifdef GND pinMode(GND, OUTPUT); digitalWrite(GND, LOW); #endif #ifdef VCC pinMode(VCC, OUTPUT); digitalWrite(VCC, HIGH); #endif pinMode(SLAVE, OUTPUT); digitalWrite(SLAVE, HIGH); Serial.begin(9600); SPI.begin(); SPI.setBitOrder(MSBFIRST); SPI.setClockDivider(SPI_CLOCK_DIV4); SPI.setDataMode(SPI_MODE0); } void loop() { int value; delay(500); digitalWrite(SLAVE, LOW); // Enable a chip value = SPI.transfer(0x00) << 8; // read High byte value |= SPI.transfer(0x00); // read Low byte digitalWrite(SLAVE, HIGH); // Desavle a chip if ((value & 0x0004) != 0){ Serial.println("Error"); } else { Serial.println((value >> 3) * 0.25); } } }}}