NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

PWMファンの使い方(CNPS14X)

イメージ 1

 CPUクーラーを衝動買いしてしまいました・・・なんかカッコ良い
「φ140mmのPWMファン」がアルミヒートシンクに挟まれており銅製のヒートパイプがバイクのエキマニの様です。
 このカッコ良い定価1万4千円位の製品が、「千円台」で投げ売りされていたのと「PWM」の言葉に釣られ、ノートPCしか持っていない私が気付いたら買っていました(当然嫁に発見され怒られたのは想定通りです!)

1. PWMファンとは

 PWMファンに使用されているDCモーターは電圧を変えることによっても回転数を制御する事が可能ですが以下の欠点が有ります。
○電圧を降圧する際に電力ロスが大きい。
○電圧が低すぎるとモーターの始動トルクが足りずに遅い速度では使えない
○電圧を平滑にするコンデンサーを使用していることからレスポンスが遅い

 これら全ての欠点を克服したDCモーターの回転数を制御する方式としてPWM方式があります。
PWM信号でDCモーターに繋がる電源を高速にON・OFFし、その際のON時間の割合(デューティー比)変え回転速度を制御します。※ラジコンのモーター制御と同じ
PWM ファンとは通常のファンに比べPWM入力端子を1つ多く持ち、この端子にデューティー比を変えたPWM信号を入力することで簡単・高精度・エコロジーファンとして機能します! ※欠点としてスイッチングノイズが出ます
 つまりArduinoで制御してくれと言わんばかりの製品だと勝手に解釈しました
イメージ 2イメージ 3
            図1-1:CNPS14X箱      図1-2:その他小物(今回は使いません)
 
イメージ 4
図2:CPUクーラー(中央についているものがΦ140mmのPWMファンです)
 
イメージ 5イメージ 6
   図3-1:吸熱面のサイズ約40mm角      図3-2:全高約160mm

2. 端子図

 NETで4ピンのPWMファンについて調べたところ各社表記の方法が微妙に異なっており、詳しく説明されているサイトは残念ながら見つかりませんでした。
 各サイトの情報を私の妄想で補完すると図4左コネクターは図4右の配線で行けると思います。(行けました)
イメージ 17   イメージ 16
図4:4ピンPWMファンコネクター端子図

3. 確認

 いきなり全部接続して壊すと残念なので一つ一つ確認していきます。
※確認をすっ飛ばして何個新品の電子部品を壊したか・・・確認って大事!
 
3.1 GNDと+12V端子
 最初に図4のGNDと+12V(12V電源がなかったので9V)をつないでみました。
 すんなりファンは回りましたのでこの接続でOKです!
イメージ 7
図5:GNDと+12V端子確認

3.2 PWM端子
PWM端子はファン内部でプルアップされており、この端子をGNDに落とすことで内部スイッチ(MOSFET)をOFFしモーターへの電力供給を止めています。
 ArduinoUNOでの制御を考えているのでPWM端子をGNDに落とした際に流れる電流が20mA以下かつ電圧が5V以下で有ることが必要です。
 確認した結果、電流は1mA未満で電圧は約2.5VとArduinoUNOで十分制御出来そうでした!
イメージ 10イメージ 11
イメージ 8イメージ 9
図6-1:PWM端子オープン(ファンON)  図6-2:PWM端子GND接続(ファンOFF)
※ONでもOFFでも流れる電流は1mA未満でした。
 
 
イメージ 12
図7:PWM端子は約2.5Vにプルアップされていました
 
3.3 Sencer端子
 オシロスコープでSencer端子とGND間の電圧変動を見たところ、Sencer端子からはファンが1回転する間に2回HIGH信号が出力されていました。
 しかし出力される波形は500mVの微妙なノイズ多めの信号でしたので今回は回転数の測定はやめました。※入力電圧が+12Vの所+9Vでやったのが原因か?

4. プログラム

ArduinoUNOからPWM信号を出力するプログラムは以下の通りです。
一行下の127と書いてある数字を0にすると遅く255にすると早く回転します。
int PWM=127;          //PWM変数を0~255に設定

void setup() {        //一回だけ実行
  pinMode(5,OUTPUT);  //5番ピンを出力に設定
}

void loop() {         //{}内を無限ループで実行
  analogWrite(5,PWM); //5番ピンをPWM/255×5Vで出力
  delay(1000);        //1000msプログラムを止める
}
イメージ 1
プログラム例
 
 

5. ファンを制御!

5.1 Arduino UNOとPWMファンを接続
 4.のプログラムを書き込んだArduinoUNOと、ピンヘッダを挿したPWMファンのコネクターと、電源を図8の様にブレッドボードに差して接続します。
 これでプログラムの変数(PWM)の値を変えればPWMファンの回転数をArduinoUNOで制御できる様になりました。
イメージ 13
図8:ブレッドボードの配線
 
 
イメージ 14
図9:全体
 
イメージ 15
図10:ファンが快調にArduinoUNOで制御されました!

5. まとめ

 後出しジャンケンですがこの衝動買いしたこのCPUクーラーはペルチェ素子の放熱(小型冷蔵庫?)に使えそうです
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【NOBのArduino日記!】目次に戻る