ファンは3ピンと4ピンのどちらも使えます。
また、2ピンのファンも3ピンモードで制御できますが、回転数は取得できません。
操作や表示はシリアルポートで接続したPCから行います。
コストダウンのためにLCDなどを使わないようにしました(汗
左はゲートドライバにフォトカプラを使ったもの。右はNJM4860を使ったもの。どちらを作っても動作は同じです。
4ピンファンは外部からのPWM信号で回転数を可変させる機構があるので、ファンに対してPWM信号を与えて回転数を可変させます。
(以下「ファンPWM」と呼びます)
本当は電源PWMとファンPWM用に2本のPWMと、かつUSARTがあるPIC12F1572を使いたいところですが、あいにく半導体不足のせいかどこにも在庫がないのでPIC12F1822を使いました。
PIC12F1822はPWMが1本のため、PWM信号はロジックICで電源PWMとファンPWMを切り替えることとしました。
パワーMOSFETのゲートドライバとして、NJM4860かTLP351/TLP250Hを使います。
しっかりゲート電圧をファン電圧まで引き上げているため、あくまでも指で触った感覚ですがパワーMOSFETの発熱はありませんでした。
NJM4860は5V出力のLDOを内蔵していますので、これ一つでマイコン用の電源も確保できるので便利です。
どうもファンのPWM信号も12Vまで引き上げてあげないと、低回転時に「キーン」という音が鳴るためゲートドライバで12Vに引き上げています。ファンのデータシートを読むと5Vも動作範囲内なのですが・・・
もっとローコストに仕上げたい場合は、ディスクリートでプッシュプル回路を組んでも良いかと思います。
ゲートドライバにTLP351/TLP250Hを使用した場合
クリックで拡大します。
シリアル変換にFT232モジュールなどのTTL/CMOSレベルが出ているものを使うのであれば、トランジスタによるレベル変換回路は不要になります。
FT232モジュールとゲートドライバにNJM4860を使用した場合
クリックで拡大します。
FT232モジュールとゲートドライバにTLP351/TLP250Hを使用した場合
クリックで拡大します。
正しく動作すると、Duty比に対してファンの回転数が変化します。
3ピンファンの場合、Duty比が100%以外の回転数は無効となります。
例えば電源を入れると1kHzのパルスを出す発振器があったとして、その発振器の電源自体を高速にON/OFFすると正しく1kHzが出力できないことは想像できるかと思います。
下記のように実行します。
E:\>pwmsweep 1 5 > out.txt
引数の 1 はポート番号で、この例ではCOM1を指定しています。
引数の 5 は待ち時間で、この例では待ち時間を5秒とします。
結果は標準出力に出力されるため、リダイレクトで out.txt に保存します。
待ち時間とは、Duty比の変更コマンドを送ってから回転数が安定するまで若干の時間がかかるため、それを待つための時間です。
ファンの大きさにもよりますが、5秒ほどあれば十分のようです。
実行例
結果ファイルの中身
結果の項目はタブ区切りですので、Excelなどに張り付けてグラフ化ができます。