標準的な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 ] (※回転数読取時のみ)
接続のポイント
- GNDを共通にする(最重要)
- 12V電源のマイナス(黒)と、ArduinoのGNDピンを必ず「合流」させてください。これが繋がっていないと、Arduinoからの「回れ!」という信号(青い線)の基準電圧が決まらず、ファンが動きません。
- 電源の分離
- 12V電源はファン専用に用意します。Arduinoの5Vピンからファンの電源を取ろうとすると、電圧不足かつ電流オーバーでArduinoが壊れる可能性があるため注意してください。
- PWM信号(青色線)
- ArduinoのD9(またはD3, D10, D11など
~マークがついているPWM対応ピン)に直接接続します。ここは信号だけなので、抵抗なしの直結で大丈夫です。
- ArduinoのD9(またはD3, D10, D11など
- 回転数センサー(緑色線:任意)
- もし回転数(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 ピンアサイン表
| ピン番号 | 信号名 | ワイヤーの色 | 内容 |
| 1 | VCC | 赤 (Red) | 電源 (+5V) |
| 2 | D- | 白 (White) | データ入力 / 出力 (-) |
| 3 | D+ | 緑 (Green) | データ入力 / 出力 (+) |
| 4 | GND | 黒 (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専用コネクタだとそのまま挿せないことがあります。その場合は変換ケーブルや端子の差し替えが必要になることがあります。

コメント