最終更新日:2022/05/06


法人向けのETC専用カード


はじめに

ここのところPCファンをいくつか扱うことがあったので、それらをチェックするものを作りました。PCファンのPWM制御および回転数の表示を行います。

ファンは3ピンと4ピンのどちらも使えます。
また、2ピンのファンも3ピンモードで制御できますが、回転数は取得できません。

操作や表示はシリアルポートで接続したPCから行います。
コストダウンのためにLCDなどを使わないようにしました(汗


左はゲートドライバにフォトカプラを使ったもの。右はNJM4860を使ったもの。どちらを作っても動作は同じです。


注意

もし何らかの損害が発生しても当方は一切責任を負いませんので、あくまでも自己責任でお願いします。

ハードウェア製作

3ピンファンは電源自体をPWMでON/OFF制御して、回転数を可変させます。
(以下、便宜上「電源PWM」と呼びます)

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も動作範囲内なのですが・・・

もっとローコストに仕上げたい場合は、ディスクリートでプッシュプル回路を組んでも良いかと思います。

回路図

ゲートドライバにNJM4860を使用した場合

クリックで拡大します。

ゲートドライバにTLP351/TLP250Hを使用した場合

クリックで拡大します。

シリアル変換にFT232モジュールなどのTTL/CMOSレベルが出ているものを使うのであれば、トランジスタによるレベル変換回路は不要になります。

FT232モジュールとゲートドライバにNJM4860を使用した場合

クリックで拡大します。

FT232モジュールとゲートドライバにTLP351/TLP250Hを使用した場合

クリックで拡大します。


ソフトウェア

ダウンロード

FanChecker100.zip V1.00 2022.05.06

ファン制御・表示ソフト

FanChecker.exeを起動します。

Connecボタンで接続先のシリアルポートを指定すると、コントローラに接続できます。
Setting欄のFan Typeで3Pinか4Pinかを選択、PWM DutyでDuty比を選択でき、Sendボタンを押すと設定データをコントローラに送信します。

正しく動作すると、Duty比に対してファンの回転数が変化します。

3ピンファンの場合、Duty比が100%以外の回転数は無効となります。
例えば電源を入れると1kHzのパルスを出す発振器があったとして、その発振器の電源自体を高速にON/OFFすると正しく1kHzが出力できないことは想像できるかと思います。

ファン回転数チェッカー

pwmsweep.exeを使うと、4ピンファンのDuty比を自動で変化させて、それぞれの回転数を記録できます。
これはWindowsのコンソールアプリです。

下記のように実行します。
E:\>pwmsweep 1 5 > out.txt

引数の 1 はポート番号で、この例ではCOM1を指定しています。
引数の 5 は待ち時間で、この例では待ち時間を5秒とします。
結果は標準出力に出力されるため、リダイレクトで out.txt に保存します。

待ち時間とは、Duty比の変更コマンドを送ってから回転数が安定するまで若干の時間がかかるため、それを待つための時間です。
ファンの大きさにもよりますが、5秒ほどあれば十分のようです。

実行例

結果ファイルの中身

結果の項目はタブ区切りですので、Excelなどに張り付けてグラフ化ができます。



当サイト内の検索