ARGB ファン
ARGB の PCファンは各社から様々なタイプが販売されています。
その中で、今回使用したファンは、お手軽な価格で購入できる ↓この ファンです。
Amazon;Thermalright TL-C12CW-S 3個組1689円
ファンの種類により フルカラーLED の配置や個数は変わってくると思われますが、このファンは、ブレードの枚数と同じ 8個のフルカラーLED がブレードの根元に配置されているタイプです(LED自体は回転しません)。
ファン自体は 12VのPWM方式の4ピンで制御しますが、ARGB は5Vの3ピンで制御します。ファンを回すことと、ARGB を光らすことは 独立して制御する必要があります。
なお、12Vの4ピンRGBとは、電圧も制御方法も まったく異なり互換性がありません。
- 関連記事1:12V 4pin RGB LED をマイコンで制御
- 関連記事2:PC用のPWMファンを回す
3ピン仕様ARGB
ARGBの(マザーボードに接続する側の)コネクタは上記の様なメス型の形状です。

マザーボード上のARGBヘッダーは 上記の様な配列で、コネクタの『矢印マーク』が『5V』側になります。なお、逆向きには挿さらないピン配列になっています。
ARGB とは
アドレッサブルRGB の略で、ディージーチェーン接続した複数の RGB LED の、一つ一つを個別の色で光らせることができる マイコン内蔵の RGB LED です。マイコン界隈で有名な NeoPixel と同等のフルカラーLED(シリアルLED)です。( NeoPixel は Adafruit の商標 )
冒頭で触れましたが、今回使用するファンには ディージーチェーンによる 8個のフルカラーLEDが内蔵されていて、さらに、このファン同士を複数接続することができます。
試しに2つのファンをつないでみましたが、ファン同士はシリアル接続ではなく、パラレル接続でした。つまり、複数のファンを接続した場合は、すべてのファンは同じ光らせ方しかできません。
ファンを分解して Data Out ピンを引き出せば、ファン間のシリアル接続もできると思います。
MicroPython で光らす
勘が良い方なら もうお分かりだと思いますが、MicroPython には 最初から NeoPixel 制御モジュールが組み込まれているため、それを利用するだけです。
次のようなコードで ARGB を簡単に光らすことができます。
from machine import Pin
from neopixel import NeoPixel
import time
np = NeoPixel(Pin(16), 8)
for n in range(64):
np[(n-1)%8] = (0, 0, 0)
np[n%8] = (0, 255, 0)
np.write()
time.sleep_ms(500)
- グラデーションで変化させてみました
from machine import Pin
from neopixel import NeoPixel
import time
#https://tori29.jp/blog/export_17
#def hsv_to_rgb(h, s, v):
np = NeoPixel(Pin(16), 8)
for n in range(8):
np[n] = hsv_to_rgb(359, 1, 1)
np.write()
for r in range(360):
np[r % 8] = hsv_to_rgb(r, 1, 1)
np.write()
time.sleep_ms(100)
( 肉眼では綺麗に光って見えているのですが、動画ではなぜか中央が真っ白です。 )
hsv_to_rgb()
は、次のサイトのコードを丸々利用させていただきました。
- グラデーション+補色を逆回転させてみました
from machine import Pin
from neopixel import NeoPixel
import time
#https://tori29.jp/blog/export_17
#def hsv_to_rgb(h, s, v):
def complementary_color(color):
r, g, b = color
mix = min(r, g, b) + max(r, g, b)
r, g, b = mix - r, mix - g, mix - b
return (r, g, b)
np = NeoPixel(Pin(16), 8)
for r in range(360):
color = hsv_to_rgb(r, 1, 1)
for n in range(8):
np[n] = color
np[7 - (r % 8)] = complementary_color(color)
np.write()
time.sleep_ms(100)
12V 4pin RGB LED に比べ、5V ARGB を光らすことは とても簡単です。
以前作成した『CPU使用率に応じてRGB LEDの色を変化させる』を、こちらのファンで再構築してみようと思います。
多数の ARGB を マイコンで光らす場合の注意点
PC の USB ポートの VBUS は、USB2.0ポートで 500mA、USB3.0ポートで 900mA 程度の電流しか取り出せません。そのため、数十、数百の LED を同時に点灯させる場合は、PSU から直接 5V を給電する必要があります。
物の本によると、0.5A で LED 約8個、0.9A で 約14個、1A で 約16個、2A で 約33個 とありましたが、保証数ではありません。 自己責任で容量算出しましょう。
以上