ハードディスクの起動音。
続いて、サーというファンの回る風切り音。
静かな部屋では、僅かな音でも不要な雑音です。
熱対策をしたテレビチューナー。ファンによる放熱効果は上がっているようですが、ファンの音が気になり始めました。
それほど嫌な音ではないのですが、気になりだすと、なんとかしたくなるのです。
現在は、テレビチューナーが動作している間、最高速度でファンが回ります。
これを温度に応じて速度を調節することにしました。
ユーザーによる改造はメーカーの保証・修理が受けられなくなる可能性があります。
具体的には、目標温度を設定し、この温度を越えないようにファンの出力を制御するのです。
制御出力の方法には電圧/電流によるアナログ方式とパルス幅によるデジタル方式があります。
まず考えたことは、音を抑えるためにアナログ方式にすることです。
デジタル方式は電力損失が少ない反面、出力パルスによる振動音(鳴き)が発生するからです。
アナログ方式の実現方法として、MCUのDA出力でMOSFETのゲート電圧を変化させ、ソースドレイン抵抗をリニアに制御しようと考えました。
これが、その回路図です。
- MCUは8ピンのPIC 12F1822。
ADCやDACが入っています。 - 温度センサーはサーミスタ。
ADCで入力し、測定範囲は20℃..80℃。
分解能は0.3℃。 - リニアリティを確保するため、MOSFETはドレイン接地で、バッファとして使用します。
DACで電圧駆動します。
ただ電圧利得は最大1なので、負荷電圧は5Vに制限されます。
もし、ファンが回転しなければ、再度検討します。 - 二色LEDで状態を表示します。
色(緑から赤までの連続)で温度、点滅速度(2秒又は5秒周期のほたる点滅)で目標温度を越えたか否かを知らせます。
LEDはPWMで点灯します。
このPWMパルスは速度を必要としないのでプログラムで制御します。 - ディップスイッチで目標温度(40℃,45℃,50℃,55℃)を切り換えられるようにします。
MCU内のプルアップを使用します。
MOSFETはソース接地に変更します。
ところが、今度はMOSFETのリニア領域が狭く、MCU内臓のDAコンバータの分解能では、ほとんどON/OFF制御と同じになってしまいました。
結局、熱抵抗を計算したり、最大損失電力の大きいをMOSFETを探したりして、時間を費やしたのですが、購入したMOSFETではアナログ制御ができないことが判ったのです。
他のデバイスに交換することも考えましたが、ここは、素直にPWMによるのデジタル方式に方針を転換することにしました。
これが最終的な回路図です。
- MCU内のPWM機能を使うので、出力ポートを変更しました。
- 出力パルス周波数は慣例に従い、聴覚範囲外の25KHzにします。
分解能は0.65%。 - MOSFETはソース接地。
ブログ投稿後、フライホイールダイオードを忘れていたことに気づき、慌てて、手持ちのショットキーバリアダイオードを追加しました。
MOSFETは無事でした。アナログ制御用に、耐圧の高い部品を選定したことが幸いしました。

試しに50%で出力してみました。
波形を見る限り、うまく出力できているようです。
さて、今回の制御の処理内容は次の通り
- 現在温度が目標温度を越えた時に、その乖離に応じてファンの出力を上げていきます。
- 目標温度より下の一定範囲に不感帯を設け、それを下回った場合、ゆっくりと出力を下げます。
これにより、過度なハンチングを減らします。
MPLAB X IDEでビルドしPIC kit3で書込みます。
電源ケーブルはビデオ基板の前回と同じ場所に繋ぎます。
ICチップから離れていますが、貼り付け面を広くとれる場所にしました。
その代わり、目標温度を低めに設定します。
万が一、脱落した時のことを考え、基板の配線面はカプトンテープで絶縁します。
テスト的に設定温度を低くして動作を確認します。
ファンは緩やかに速度を変えながら、低速で回転しました。
またLEDの表示も、ほぼ、目標温度を下回っていることを示しています。
制御はできているようです。
ディップスイッチで目標温度を45℃に設定し、元通りに組立てて、作業は完了です。
冬場の今の時期では、ファンはほとんど回らないので、ファンレス並みに静かになりました。
あとは夏場にどうなるか。
これで、リビングに雑音がひとつなくなりました。
それに代わって、遠くの別の音が聞こえるようになったのです。
ウィーン。
気になり始めました。
キッチンの冷蔵庫。
