アフィリエイト広告

ヒーター温度のPID制御 – 回路図

ジャンク箱にあったサーミスタ。ヒーターの制御をするために、温度センサーとしてこのサーミスタを使いたいと考えています。
サーミスタを調べてみた – 測定の結果」で 温度 – A/D 出力値特性 がわかりましたので、今回はヒーター制御のための回路を作ってみました。

回路図

全体の回路図です。

基本は「トライアックによる電力調整 − 位相制御」で作った回路です。
制御部の電源にトランスタイプの AC アダプタを利用していたのですが、電源回路も組み込んで AC 入力を一つにまとめてあります。
今回、サーミスタからの電圧入力部分を追加し、ボリュームは目標値設定用としました。

Arduino が UNO になってますが、実際に使っているのは NANO 。どっちでも違いはないです。

電源部

電源トランスは 5V-0V-5V で 150mA の出力です。
本当は 6.3V から 9V で電流容量大きめのトランスが欲しかったのですが、秋月電子通商には容量の小さな物しかなかったので、これにしました。センタータップを使わずに AC 10V で利用しています。

交流の 10V を両波整流すると直流で 14V 以上になってしまいます。そのまま Arduino に入力するには電圧が高すぎます (推奨値は 7~12V) から、三端子レギュレーターで 9V にして Vin に入れています。
DC 5V は Arduino の +5V ピンから取り出しました。

ちなみに、Arduino の Vin にあるダイオード D6 は、Arduino を USB ケーブルでパソコンにつないだまま制御用電源を切ったときに、5V が電源回路に逆流するのを防ぐために入れています。

ゼロクロスパルス発生部

ゼロクロスパルス

ゼロクロスパルスは、両極性入力のフォトカプラ FOD814_817 で発生させています。

入力電圧が 10V 、順方向電圧は 1.2V なので電流は 8.8mA です。最大値でも 13mA ですので、最大定格の 50mA を越えることはありません。

出力側は、コレクタ電流を 1mA として、コレクタ抵抗は 4.7KΩ としました。

写真は、Arduino D4 ピンに入力されているゼロクロスパルスの波形です。

基準電圧・計測電圧入力部

電力制御回路で出力電圧を設定していたボリュームは、温度目標値を決めるための基準電圧に使用します。30KΩ のボリュームを使っていますが、部品箱にあった、というだけです。
5KΩ ぐらいがいいんじゃないでしょーか。根拠、ないです (^_^;)

サーミスタには、制御する温度の中央値での抵抗値と同じ値の抵抗を直列につなぎます。
今回の中央値は 40℃ で、その時のサーミスタの抵抗値は約 550KΩ 。ということで 560KΩ としました。

Arduino の入力には、それぞれローパスフィルターを入れています。定数はテキトーです (^_^;)
これ、ノイズを防ぐということよりも、Arduino への出力インピーダンスを下げることが目的です。

Arduino のアナログ入力ピンって電流がほとんど流れないので、前段の出力インピーダンスが多少高くても問題ないかなと思いがちなんですが、じつは 10KΩ 以下にしないといけないのです。しかも高周波はダメ。(*)
そのため、ローパスフィルターによって高周波分を除去するとともに、出力インピーダンスを下げています。

(*) The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less.

megaAVR ® Data Sheet 24.6.1 Analog Input Circuitry

位相制御電力調整部

Arduino の制御出力はトランジスタで受けてからフォトトライアックのトリガとします。
フォトトライアックの入力の順方向電圧は 1.2V ですから、電流値は 12mA です。Arduino から直接出力することもできますが、まぁ趣味です。ってゆーか、入力インピーダンスを高くするっちゅーことです。

電力調整部は、トライアックを使った位相制御回路です。
これは秋月電子通商で購入した SSR キットを改造したもので、フォトトライアックをゼロクロスタイプ TLP561J から非ゼロクロスタイプ S21ME3 に交換しています。

ブレッドボード

ブレッドボード

ブレッドボードのようすです。

サーミスタの特性を測定したときから、基本的に大きな変わりはなく、入力部のローパスフィルターが追加されただけですね。

ラグ板上にあるのは電力制御部です。商用電圧を扱うので、ブレッドボードではなくラグ板に組んでいます。
その上にあるのは、出力用の電球レセプタクルとコンセント。コンセントから、右側のアルミ板に取り付けてあるヒーターにつながっています。

ラグ板の右横にあるのが電源トランスです。
制御回路の電源と、ゼロクロスパルスを取り出します。

ブレッドボード上には Arduino NANO と制御回路。
右端にある半固定ボリュームが、温度設定用のボリュームです。アルミ板にはサーミスタが取り付けてあり、ヒーターの温度を計測しています。

教科書にあるような (^_^;) フィードバック制御回路ができました。
次は、この回路を動かすスケッチを作ることにしましょう。

タイトルとURLをコピーしました