|
このページでご紹介しているPWMファンコントローラはPICマイコンを使用しているため、製作にはPICマイコン用のプログラマ(ライター)が必要となります. レガシーポート(シリアルポート、パラレルポート)用のプログラマは簡単に製作出来ますが、最近のUSBポートしかついていないパソコンで開発するには市販のプログラマ(あるいはプログラマ・キット)を購入する必要があります. PICマイコンの開発環境をお持ちでない方には、このページの末尾の回路図(PDF)のLMC555ファンコントローラの方を勧めします.
パソコン用PWMファンコントローラ |
- 3pinファン用コントローラ回路図 pwmfan3pin.pdf
- 4pin CPUファン用コントローラ回路図 pwmfan4pin.pdf
- Cソースコード pwmfan.c
- HEXファイル pwmfan.hex
3pinファン用基板製作例 |
基板上面
PICの上にプッシュボタン・スイッチを重ねて実装しています
基板裏面
パワーMOS FETの陰になって見えませんが,抵抗R2(1kΩ)にはチップ抵抗を使っています
接着剤で固めた後にブチルゴムテープを巻いた基板
スイッチの押しボタンだけが見えています
さらに絶縁テープを巻けば,パソコンのマザーボードの上にころがしておいても大丈夫です
4pin CPUファン用基板製作例 |
PWM制御出力波形 |
変数 speed=0 の時のPICのGP1出力波形
duty比最大(約90%),ファン速度最高
変数 speed=9 の時のPICのGP1出力波形
duty比最小(約20%),ファン速度最低
設定値とファン回転数の関係 |
左図はケースファンについて,スピード設定値(変数 speed の値)とファン回転数の関係を測定してグラフにしたものです. もう少し回転数を落とせるように,プログラムを改良した方が良いかもしれません.
このグラフはあくまでも測定例の一つで,ファンによって特性はかなり異なることにご注意下さい.
ファンの回転数センサ出力波形 |
ファンの回転数センサ(速度センサ)の出力はオープン・ドレインになっているので,出力波形を観測するにはプルアップ抵抗が必要です.
PWMファンコントローラを使った場合の回転数センサ出力波形
センサ出力波形にもPWM変調がかかっています.
このような変調のかかったセンサ出力波形では正常に回転数検出が出来ないマザーボードもあります.(変調周波数がやや低い影響があるのかもしれません) そのためもあって製作したファンコントローラではPICで生成した周波数約70Hzの方形波をマザーボードのセンサ入力信号として与えています.(マザーボード/BIOSで実際のファン回転数をモニタすることは出来なくなります)
山洋電気製}CPUファンの仕様 |
設計の参考にするために山洋電気のPentium4プロセッサ対応CPUクーラー(4pin CPUファン)の資料を見たところ,なかなか面白い仕様であることに気づきました. 例えばPWM制御入力信号のduty比が0%でも,ファンの回転速度は0になりません.(フェールセーフを考えた仕様のようです) また制御信号のduty比が一定でも,CPUクーラー側に内蔵した温度センサでヒートシンク温度あるいは周囲温度を検出して,一定範囲内でファン回転数の自動制御かかかります.(これもワーストケースを考慮した堅実設計?)
ご紹介した4pin CPUファン用PWMファンコントローラ基板と山洋電気製のCPUクーラーを組み合わせて使用した場合,周囲温度やCPUの負荷によりファンの回転数が変動する場合があります.
左図は山洋電気のCPUクーラー SAN ACE MC のデータシートのコントロール端子入力デューティー回転速度特性例のグラフを一部簡略化して書き直したものです.
パソコン2台をリプレースした際,ファンの音が非常にうるさかったのでファンの回転数を落とすために上記のPICマイコンを用いたファンコントローラを製作しました. 購入したマザーボードのBIOSのファン速度自動制御機能は単純なON/OFF制御のようなもので騒音低減には役にたたず,フリーのファン制御ソフトはマザーボードや他のアプリケーションとの相性の問題があるのかマシンがハングアップしまい使い物になりませんでした. 単に回転数を落とすだけなら抵抗を1本使えばすむ話ですが,設定を簡単に変えられるようにこのような基板を作った次第です. 作りやすいように出来る限り簡単な回路にして,パソコン2台分のCPUファンとケースファンの制御用に合計4枚の基板を作成しました.
温度センサを用いた本格的ファンコントローラ |
このファンコントローラを製作してから,トランジスタ技術(CQ出版)2004年8・9月号に同じPIC12F675とサーミスタを用いたPWM制御ファン・コントローラの製作記事が掲載されていたことを知りました. 温度センサを用いた本格的な制御をおこなう場合の参考になると思います. 自作される場合は温度検出にサーミスタよりも入手しやすいLM35等の半導体温度センサを用いると良いでしょう.
PICマイコン不要のLMC555ファンコントローラ |
スイッチではなくボリュームでの回転数調整でも良ければ、CMOS版のタイマーIC LMC555を使って下記のようなファンコントローラを製作出来ます. 4pin用のファンコントローラも同様の回路で簡単に製作出来ます. タイマーICは必ずCMOS版のLMC555を使ってください.(LM555とその互換品は不可) ダイオードは小信号用のショットキー・ダイオードまたはシリコン・ダイオードなら何を使ってもかまいません. 電源ラインのパスコン等を省略していますが、特に問題なく動くはずです. 極端に回転数を落とそうとすると、トルク不足のためにパソコン起動時にファンがまわらなくなる可能性があるので注意してください.
スイッチを使ってあらかじめプリセットした回転数を複数選択出来るようにしようとすると、部品点数が増えて小型にするのが難しくなります. 実は最初にLMC555でプリセット方式のものを作ろうと試みたのですが、部品点数を減らそうとすると回転数の調整範囲が狭くなったりしてスマートな回路にならず、諦めてPICマイコンを用いたファンコントローラを作りました.
BD6231Fを用いたファンコントローラ |
秋月電子通商で取り扱っているBD6231F(PWM変調回路内蔵ブリッジドライバ)を用いれば、もっと簡単な回路でファンコントローラを作ることが出来ます. サーミスタを用いた自動制御も可能です.(詳細はBD6231Fのアプリケーション・ノートを参照してください)
Rohmのアプリケーション・ノートに記載の回路例
(サーミスタを用いた自動制御回路)
BD6231Fを用いた任意に動作特性を設定可能なユニバーサル・ファントコントローラに関してはトランジスタ技術(CQ出版)2012年8月号の記事「回り方も温度も思いどおりに! アナログ・ファン・コントローラ」をご覧下さい.
BD6231Fユニバーサル・ファンコントローラ回路図 bd6231f_fancon.pdf
2つのボリュームで任意に動作特性を設定可能です.
温度センサにはLM35を用いています.
FET(2SK30A)の代わりに定電流ダイオードを用いてもかまいません.(並列接続可)
|