• 目次 -Page-
  • コンテンツ -Menu-
  • リンク -link-
  • A/Dなしで熱電対 まずは回路図 MAX6675(MAX6674)
  • 熱電対を利用する時に面倒なのが「冷接点補償」と「アナログ入力」。 回路を考えるのもプログラムを考えるのも時間がかかってしまう。 しかし、MAX6675(マキシム製)を利用すれば熱電対のデータをデジタルで教えてくれる(K型用)。 熱電対をMAX6675に接続し、MAX6675をPICとSPI接続するだけだ。 これは楽だということでテストを行いました。

    回路図は上の通りになりました。PIC周りは省略していますが、それでも簡単な回路です。 本当にこれで熱電対のデータを測定出来るのでしょうか?

    実物は上の写真のような8ピンです(右側)。 実物を見ると余計に不安になってきました・・・。
  • プログラム MPLAB-C18
  • 今回はMPLAB−C18を使用してプログラムを組みました。 CCS−Cを利用しなかったのは別に理由はありません。なんとなくです。

    プログラムは上図の通りです。10MHzのオシレータを内部PLLで4倍しています。 1−5行目はヘッダファイルの読み込みです。「delays.h」は遅延処理用です。 シリアル通信が楽になるように「stdio.h」も組み込んでいます。
     
    47−57行はSPI通信の関数です。受信のみでも送信を行ってダミークロックを出さないといけないので送信処理も行っています。 MAX6675は16ビットデータを送信してきますが、PICのSPIが8ビットなので2回読み込みます。 チップセレクトをRC2で行っていますが、どのポートに繋いでも問題はありません。
     
    39−42行はSPIで得たデータを生成しているところです。8ビットの2つのデータを足して16ビットにしています。 41行目は温度データ以外の部分を削除する為の処理です。 得たデータは12ビットで、MAX6675は約1000℃の計測が出来ます。 よって、0x01は0.25℃ということになり、得たデータを1/0.25で割らないと温度になりません。 その処理が42行目です。43行目でパソコンへシリアル送信しています。
     
    実際に実行させてみるとしっかりと温度を測れていました。 しかし、もともとMAX6675は誤差が大きなICなので精度は良くはありません。 電子工作レベルなら十二分に楽しめるので、なかなか面白いデバイスだと思いました。
    Design & Programming - 天姫 -
    Copyright (c) 2007-2009 amahime All Rights Reserved.