[Arduino]4Pin PWM(パルス幅変調)ファン

標準的な4ピン PWM(パルス幅変調)ファンの配線の色も共通しており、一般的にPC向けで使われる標準的なピンアサイン(ピン配列)となっています。

共通のピンアサイン(配線色別)

ピン番号ワイヤーの色役割内容
1黒 (Black)GND接地(マイナス)
2黄 (Yellow)+12V電源(メイン)
3緑 (Green)Sense / Tach回転数信号(回転速度を検知)
4青 (Blue)Control / PWM速度制御信号(回転速度を調整)

Arduinoと4ピンファンの配線図

  【外部12V電源】          【4ピンファン】           【Arduino】
      [ + ] <------------> (2) 黄色線 (+12V)
      [ - ] <---+--------> (1) 黒色線 (GND)
                |
                +------------------------------> [ GND ]
                                                 [     ]
                           (4) 青色線 (PWM) <--- [ D9  ]
                                                 [     ]
     (5V) <---[10kΩ抵抗]--- (3) 緑色線 (Tach) ---> [ D2  ] (※回転数読取時のみ)

接続のポイント

  1. GNDを共通にする(最重要)
    • 12V電源のマイナス(黒)と、ArduinoのGNDピンを必ず「合流」させてください。これが繋がっていないと、Arduinoからの「回れ!」という信号(青い線)の基準電圧が決まらず、ファンが動きません。
  2. 電源の分離
    • 12V電源はファン専用に用意します。Arduinoの5Vピンからファンの電源を取ろうとすると、電圧不足かつ電流オーバーでArduinoが壊れる可能性があるため注意してください。
  3. PWM信号(青色線)
    • ArduinoのD9(またはD3, D10, D11など ~ マークがついているPWM対応ピン)に直接接続します。ここは信号だけなので、抵抗なしの直結で大丈夫です。
  4. 回転数センサー(緑色線:任意)
    • もし回転数(RPM)をArduino側で表示させたい場合は、緑色線をD2などのデジタルピンに繋ぎます。この線は「オープンコレクタ」という形式なので、図のように5Vから10kΩ程度の抵抗でプルアップしてあげると信号が安定します。

Arduinoを使って制御

4ピン(PWM対応)ファンを、Arduinoから「PWM信号」を送ることで、0%(停止に近い低速)から100%(全開)まで自由自在にスピードを操れます。

1. 回路構成(接続方法)

ファンは12V、Arduinoは5Vで動作するため、電源を分ける必要があります。

  • 12V電源: ファンの黄色(+)黒色(-)に接続します。
  • 制御信号: ArduinoのPWM出力ピン(例:D9)をファンの青色(PWM)に接続します。
  • GNDの共通化 (重要): ArduinoのGNDと、12V電源のマイナス(黒色)を必ず繋いでください。これをしないと信号が伝わりません。
  • 回転数取得 (任意): ファンの緑色(Sense)をArduinoのデジタルピンに繋げば、現在の回転数(RPM)をモニターすることも可能です。

2. Arduinoでの制御コード

Arduino標準の analogWrite() でも動きますが、PCファンの標準規格は25kHzという高い周波数のPWM信号を想定しています。

標準の analogWrite(約490Hz〜980Hz)だと、ファンから「キーン」という可聴域のノイズ(モータ鳴き)が発生することがあります。

より「プロっぽく」制御するなら、タイマーレジスタを操作して25kHzで出力するのがベストです。

サンプルコード (25kHz PWM出力 / D9ピン使用)

void setup() {
  // D9ピンをPWM出力に設定
  pinMode(9, OUTPUT);
  
  // タイマー1の設定を変更して25kHzにする (Arduino Uno/Nano等)
  TCCR1A = _BV(COM1A1) | _BV(WGM11);
  TCCR1B = _BV(WGM13) | _BV(CS10);
  ICR1 = 320; // 16MHz / (25kHz * 2) = 320
}

void loop() {
  // 0〜320の範囲で速度を指定(160なら50%)
  int targetSpeed = 160; 
  OCR1A = targetSpeed;
  
  delay(1000);
}

3. なぜArduinoで制御するのが良いのか

  • 静音化: 必要なときだけ回す、または低速で常時回す設定ができます。
  • 自動制御: 温度センサ(DHT11やBME280など)と組み合わせれば、「温度が上がったら風速を上げる」という自作のサーモスタットが作れます。
  • 安全: 0.4Aという電流はArduinoのピンで直接駆動するには大きすぎますが、4ピンファンのPWM端子なら微弱な信号電流(数mA)だけで済むため、Arduino本体を痛める心配がありません。

USBケーブルで直結パターン

USB 2.0(主にType-Aコネクタ)の標準的な4ピンのピンアサインは以下の通りです。

USB 2.0 ピンアサイン表

ピン番号信号名ワイヤーの色内容
1VCC赤 (Red)電源 (+5V)
2D-白 (White)データ入力 / 出力 (-)
3D+緑 (Green)データ入力 / 出力 (+)
4GND黒 (Black)接地 (0V)

形状別の見分け方

  • Type-A(PC本体などのメス側): 端子を覗き込んだとき、左から 1, 2, 3, 4 の順に並んでいます。
  • 基板用ヘッダーピン: マザーボード上の内部USB端子などの場合も、基本的にはこの信号順ですが、メーカーによって「5ピン(1本は誤挿入防止で欠けている)」構成になっていることが一般的です。

注意点

  • 電力容量: USB 2.0規格の供給能力は最大 500mA (0.5A) です。
  • ファンとの接続: 先ほどお写真にあったファン(0.40A〜0.41A)をUSBから直接動かす場合、電流値としては理論上足りますが、USBの5V電圧では12V仕様のファンをフルスピードで回すことはできません(低速、あるいは電圧不足で動かない可能性があります)。

注意点

  • コネクタの向き: コネクタ(メス側)には逆挿し防止のガイドや溝があります。無理に挿すと破損や故障の原因になるため、向きに注意してください。
  • マザーボードへの接続: 自作PC用マザーボードに接続する場合、HP専用コネクタだとそのまま挿せないことがあります。その場合は変換ケーブルや端子の差し替えが必要になることがあります。

コメント

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