• 目次 -Page-
  • コンテンツ -Menu-
  • リンク -link-
  • 熱電対初挑戦! まずは回路図 AD595CQ(AD595AQ)
  • 熱電対は温度測定に用いられるものです。温度測定には他に温度ICやサーミスタなどがあります。 ここでは秋月電子で入手出来るK型と呼ばれる熱電対とPICのA/Dを用いてテストします。 まずどの様に熱電対をPICに繋げればよいかを考えるのに苦労します。 しないかも知れませんが、参考にできるものが非常に少なく思えます。 あまり調べていませんが、取り上げているサイトも少ない印象があります。
     
    熱電対を用いる場合は温度補償など色々考えなければいけない事が多いので敬遠しがちになりそうです。 そんな煩わしい事を一手に引き受けてくれるICがあります。「AD595」というものです。 アナデバの製品で、K型熱電対をそのまま接続するだけで「10mV/℃」が得られます。 非常に便利で、しかも5V動作が可能です。これを用いてテストを行います。

    回路は上の図のようになります。接続する箇所も少なく利用しやすそうです。 AD595は高価なICですが、AQというタイプなら割と安価で入手できます。 この回路の「10mV/℃」をPICのAN0(アナログ端子)に接続します。
  • 基準電圧を決める LM336-2.5V
  • PICのA/Dを8ビットで利用することにします。 この場合、「5V÷255(0xFF)≒20mV」となり、 AD595の出力「10mV/℃」をそのまま入力すると2℃ずつしかカウントできません。 そこでPICのA/Dに基準電圧を与えてPIC内部の「1」が「1℃」になるように設計します。 基準電圧に2.5Vを用いた場合「2.5V÷255(0xFF)≒10mV」となるので、 テストし易い値になります。よって、2.5Vの基準電圧を使用する事にしました。

    基準電圧を作るのにはICを用いました。LM336−2.5VというICです。 基準電圧を作る事ができるので、この回路を用いて「2.5V」と書いてる矢印の先をPICの「REF+」に接続します。 「REF+」は「RA3」です。 基準電圧は他にも色々な作り方があるので他所を拝見して下さい。 また、ここでは1℃ずつ表示するテストしかしません。もっと精度の必要な回路を必要とする場合は、 A/Dを10ビットにし、周辺回路も適当なものに変更する必要があります。
     

    全体の構成図※簡易
  • プログラム CCS−C
  • 今回のプログラムもCCS−Cを用いて行います。普通に考えるとA/Dの取り込みだけで利用できそうです。
     
    -プログラム抜粋-----
    //A/D設定
    #device ADC=8
    setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);
    setup_adc(ADC_CLOCK_DIV_32);
    //A/D変換
    set_adc_channel(0);
    delay_us(50);
    data = read_adc();
    //表示 printf("Ondo = %d",data);
    ---------------------
     
    上記のプログラムはA/Dの設定と変換の抜粋です。これだけでも温度表示が可能です。 しかし、表示がパラパラ変わってしまうので平均化する事にしました。 どうやら推奨も20mS間での数度のデータリングによる平均化を勧めているようです。 よって、「2mS毎に10回データをとり、その平均値を表示する」という仕様にしました。 ところがこれでもデータがフラフラします。ブレッドボードで組んでいるせいかと思いますが・・・。 さらにこの平均化したものを5サンプルとり、その平均値を取るようにすると安定しました。 合計で100mSも使っているので実用的といえるかどうかは微妙です。

    プログラムは上記の通りになりました。こんな簡単なもので熱電対を利用できるとは思っていませんでした。 工作レベルでは十二分ではないでしょうか?
     
    ソースはここ
  • テスト風景

  • テストを行っている様子です。ブレッドボードの右端のがAD595です。 熱電対を用いた温度計との誤差を見る事にしたので、同じような位置に温度計を置いています。 ICの誤差が1℃、ソフトの誤差が1℃、MAX2℃の誤差程度で収まってくれるとよいのですが・・・。

    実行結果は上記の通りになりました。温度計との誤差は大体0.5℃〜1℃程度です。 カタログ値とほぼ同じになりました。200℃付近ではもう1℃ほどずれる予定です。 この回路では0℃〜250℃まで測定可能です。
  • 実用レベル
  • 上記方法でもある程度は温度が測定可能です。しかし、AD595とPICの接続ライン(アナログ)をオシロスコープでみると波形が汚いのがわかります。 ここに1つオペアンプをかまして波形を安定させないと精度がよくありません。よって、ここにオペアンプを挿入する事にしました。 また、熱電対を接続するコネクタとAD595のセンサー端子(1番と14番)は出来るだけ接近させて温度が異ならないようにしないといけません。 なかなか面倒ではありますが、コネクタを購入してAD595と密接するように配置しました。
    今回はUSB内臓PIC、PIC18F2550を用います。測定したデータをUSB経由でパソコンに送信し、測定結果を表示させるのが目的です。

    テスト結果が上の画像です。COMポートを自動で収集します。どのポートに繋ぐかは手動です。 グラフの赤い点が温度をあらわしています。右のテキストボックスは得た情報を常に足していきます。 通信を切断した状態にすればテキストボックスの内容をcsv形式で保存が出来ます。 エクセルなどでインポートするといろいろ活用が可能です。

    テストの様子です。コネクタがあるとスッキリしていいですね。 オペアンプを挿入したと事、コネクタを購入してAD595と密接な関係を築けたおかげでグッと精度があがりました。 市販の熱電対温度計と0.5℃程度の誤差しかありません。 これはPIC内部での計算が小数点以下切捨てで行っているためにしかたがない結果です。 しかし、これでようやく実用レベルの測定器が完成しました。0℃〜250℃まで測定可能です。
    Design & Programming - 天姫 -
    Copyright (c) 2007-2022 amahime All Rights Reserved.