アフィリエイト広告
アフィリエイト広告

冷却ファンの PID制御 (3) / Arduino から制御する回路

冷却ファンの回転数を検出し、PID制御する回路を作ります。

前回は、じっさいに CPU冷却ファンを回転させ、回転数センサからの出力を Arduino NANO で検出、7セグメントLED で回転数を表示できるようにしました。

冷却ファンの PID制御 (2) / パルス周期と回転数
冷却ファンの回転数を検出し、PID制御する回路を作ります。 前回は、ファンを回して回転数センサから出力を取りだし、表示するための回路を作りました。回路は、ファンの PWM駆動回路、回転数パルスの検出回路、そして 7セグメントLED 表示器の...

今回は、ファンを PWM制御するための信号を Arduino から出力し、回転数センサからの信号をフィードバックできるように回路を変更しましょう。

Arduino から制御信号を出力する

現在は、ボリュームで 0 ~ 3.5V の電圧を出力し、コンパレータへ比較電圧として与えています。この電圧を Arduino から出力するようにしたい。でも、Arduino NANO ではアナログ出力はできません。 アナログという名の PWM信号を出力できるだけです。

この PWM信号を、0 ~ 3.5V のアナログ電圧信号に変換しましょう。

PWM出力をアナログ電圧に変換する回路

図1. ファンモータドライバ 制御信号出力

Arduino の PWM出力を、アナログ電圧に変換する回路です。

難しいことはしません (^_^;)
5番ピンの PWM出力 (980Hz) をローパスフィルタ (リプルフィルタ) に通して直流電圧にするだけです。

PWM信号の電圧は 5Vp-p。抵抗 R1、R2 で分圧して 3.5Vp-p に落とします。そこへコンデンサ C1 を入れて平滑すれば、0 ~ 3.5V の直流電圧にできます。
C1 の値は、オシロスコープで観察し、リプルがなくなる値。大きすぎると応答が悪くなります。

R1、R2 を並列抵抗とみなすと、合成抵抗は 11.4KΩ。C1 を 4.7μF としたとき、時定数は 54ms、カットオフ周波数 3Hz。良いか悪いかわかりませんが、ファンの応答速度からみれば充分じゃないかと。

ボリューム VR1 の電圧を Arduino に入力し 5番ピンへ PWM出力すると、デューティ比 0 ~ 255 で、出力電圧は 0 ~ 3.8V となりました。

回路図

では、回路図をまとめておきましょう。基本的にこれまでと同じですが、少し修正しているところもあるかと思います。

ファンモータ PWM駆動部

ファンモータを 25KHz の PWM信号で回転数制御する駆動回路です。

図2. ファンモータ PWM駆動部 回路図

PWM Reference に 0 ~ 3.5V の電圧を与えることで、回転数を制御することができます。
RPM-Sensor に、ファンの回転数パルスが出力されます。回転数パルスは、1回転あたり 2パルスです。

Arduino 制御部

図3. Arduino 制御部 回路図 (再掲)

図1 の再掲です。

Arduino NANO で、ファンモータの回転数パルスを検出し、回転数を制御します。

VR1 は、回転数の目標値を設定します。
STB、CLK、DIO は、7セグメントLED ドライバ TM1630 のコントロールをおこないます。

ダイオード D1 は、Arduino 内部の 5V が 12V ラインへ逆流するのを防止しています。

7セグメントLED 表示部

7セグメントLED 表示器へ、ファンの回転数を表示させます。

図4. 7セグメントLED 表示部 回路図

ドライバは TM1630、制御は Arduino でおこないます。
小数点を利用しなければ、SEG14 の接続はなくてもよいです。
輝度調整はつけていません。ボリュームやスイッチでコマンド設定値を変更するようにすれば可能です。

電源部

図5. 電源部 回路図

AC アダプタから DC12V を入力し、制御回路用に DC5V を出力します。

ファンと Arduino へは 12V を供給します。
5V には三端子レギュレータ 7805 を使っています。7セグメントLED へも供給していますので、Arduino の 5V 出力の使用は避けたほうがよいと思います。

次回は PID制御してみましょう

図6. ファンの制御回路 動作テスト中

図6 は、動作テスト中のブレッドボードです。

ファンは 1498rpm で回転中。オシロスコープに表示されている回転数パルスは、周期 20ms になっています。いい感じです (^_^;)

回路がすべてできましたので、次回は Arduino のスケッチを書いて、PID制御でファンの回転数をコントロールしてみましょう。

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