LEDの点灯制御もM5Stackで行うことができるぞ!
実際に動かしてみよう
この記事では、M5StackとLED搭載のパソコン用冷却ファンを使ったLED発光制御の方法について紹介します。
前回は、M5Stackで冷却ファンを使った回転速度制御をおこないましたが、今回はLEDです。
使用するLEDは、複数のLEDを1個ずつ異なる色で発光させることができる「アドレサブルRGB」という機能を搭載した冷却ファンを使用します。
今回の冷却ファンは「Cooler Master MasterFan SF120M ARGB」を使います。
Cooler Master MasterFan SF120M ARGB
自作パソコンのパーツメーカーであるCooler Masterの120㎜冷却ファンです。 防振モーター、振動を抑えるダンピングフレームデザインなど、工業用グレードの素材を用いていて、高性能、安定性、耐久性を実現した、冷却ファン製品です。 ファン側で回転モードを3モード選択でき、高回転モードで、5.5-22 dBという静けさを実現しています。 風量も62 CFM (Max)とかなりいいです。このファンに交換することで、自作PCをさらに静かにできますよ!交換してみてはいかがでしょうか?
Amazonで確認
また今回使う「M5Stack」は、「M5Stack Core 2」を使います。
タッチパネル、マイク、6軸IMU搭載で、一台でいろいろ遊べるモデルになっています。
M5Stack Core2 開発キット
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。 タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!
Amazonで確認
前回、冷却ファンの回転制御で使用した電子回路を使って、LEDへの電源供給を行うための回路を追加します。
M5Stackによる冷却ファンの回転制御については、次の記事で紹介しています!
すけろく M5Stackを使って、モーターをコントロールしてみたいな。 げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。 […]
LEDを光らせる仕組みとは?
LEDを光らせるために、LEDの仕組みを確認します。 冷却ファンなどに組み込まれているLEDは、複数のLEDが一つのストラップ上の基板に実装されています。 この複数のLEDは、製品によって以下の3種類の仕組みが存在しています。
- LED:
単色LEDが実装されたもの。電源につなぐとあらかじめ決められた色に発色します。 - RGB:
RGB信号で発光色が変更できるLEDが実装されたもの。
ファンに複数配置されたLEDをすべて同じ色で発光させる。
つまり、ファン全体が同じ色に光ります。
注)コネクタの逆刺しを行うと故障するので注意です。 - ARGB(アドレサブルRGB):
複数配置された個々のLEDを別の色で発光させることができるもの。
こちらはファン内を虹色などに光らせることができます。
注)コネクタの逆刺しを行うと故障するので注意です。
※今回使用する冷却ファンは、ARGB対応のものですので単色、グラデーションなど色を変えて発光させることができます。
ファンにはどんなLEDが入っているのか?
ファンの外周のLED部分には、次のようなLEDストラップが入っています。
「Cooler Master MasterFan SF120M ARGB」では、次のとおりLEDが搭載されています。
- ファン中心部:LED 6個
- ファン外周部:LED 12個
ARGBの仕組みをもう少し詳しく見てみよう
120㎜FANのARGBのコネクタは写真のようになっています。
このコネクタは、FANに搭載されているLEDへの電源供給とLED制御信号のための3つの線で構成されています。
コネクタ部は以下のような仕様になっています。

左からGND(ー)、なし、LED制御信号、Vin(+)という構成になっています。
ARGB(アドレサブルRGB)対応のLEDは、LEDの中にICが含まれており、このIC部分でLED制御信号を読み取ります。
コントローラ(今回はM5Stackが該当)からLED制御信号線(Din)に送られた信号は、一列に配置されたLEDで順番に信号を読み取って次のLEDへ信号を渡していきます(Dout)。
信号の先頭24ビット分を1セットとして読み取ります。 1セットの信号は次のとおり発光色をRGB(24ビット)で表現します。(図は赤の場合)
信号は1ビットを1サイクル(1.25μsec)で表現し、「1」と「0」は、次の図のように1サイクルにおけるHighとLowの長さを変えて表現します。
- 「1」→1.25μsecの先頭0.8μsecがHighレベル
- 「0」→1.25μsecの先頭0.4μsecがHighレベル
※1ビット(1.25μs)であるので、1つのLED(24ビット)で30μsとなります。 終了時は50μsをLow状態にします。
ARGBで使用できるArduino向けライブラリ
これまで説明したARGBの仕組みをArduinoで使いたときには、次のライブラリを利用できます。
Adafruit NeoPixel Library
Adafruit 社が販売しているLEDストリップなどを制御するためのArduinoライブラリです。
Adafruit社の製品で使用されているLEDは「WS2812B」や「SK6812」が使われているものがあり、今回のようなものも同様に制御できます。
GitHubのライブラリページはこちら(Adafruit NeoPixel Library)
FastLED
adafruit(Neopixel、DotStar、LPD8806)、Sparkfun(WS2801)、aliexpressなどで販売されているものなど、さまざまなLEDチップセットを簡単かつ効率的に制御するためのライブラリです。
LEDへの書き込みに加えて、このライブラリには、RGB値を操作するための高性能8ビット計算用の関数や、ピンやSPIハードウェアへのアクセスを抽象化するための低レベルクラスが含まれています。
上記の2つのライブラリは、Arduino IDEのライブラリマネージャでダウンロード、設定ができます。
Arduino IDEでのライブラリのインストールは次の記事で紹介しています!
本記事は、Arduino IDE 1.8.xバージョンのライブラリ管理方法を紹介した記事です。 Arduino IDEは、より新しいバージョン「2.0.x」が発表されています。 機能がよりリッチになった「Ardu[…]
LEDに電源とM5Stackをつなぐ回路を製作する
それでは、実際に冷却ファンに電源とM5Stackをつないでみましょう。
今回は5Vの電圧を使用する回路を使用します。
(※5Vよりも高い電圧をかけると危険ですので注意してください)
前回、冷却ファンの回転制御で使用した電子回路を使って、LEDへの電源供給を行うための回路を追加します。
M5Stackによる冷却ファンの回転制御については、次の記事で紹介しています!
すけろく M5Stackを使って、モーターをコントロールしてみたいな。 げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。 […]
回路図でDCジャックからとっている電源は12Vです。
これとは別に5Vを準備します。
前回の記事でプルアップ抵抗に使った5Vを使います。
実際にブレッドボード上で作ると次の図のとおりになります。
冷却ファンのLEDとM5Stackは同じ5Vですので同じ電源から取得するようにしています。
これで仕組みの理解、電子回路の準備が整いました。
次はいよいよプログラミングを行い、LEDを光らせていきます。
M5Stackで冷却ファンのLEDを光らせてみる
それでは信号を使用してM5Stackから冷却ファンのLED発光制御をしてみましょう。
LED発光は以下を順番に行っていくプログラムを考えます。
ライブラリとしては「FastLED」を使います。
- LEDを順番にひとつずつ順番に発光させていく(単色)
- グラデーションで発光させる
- グラデーションをローテーションさせてアニメーションさせる
また、M5Stackのディスプレイ上には、発光パターンの選択用ボタンを表示し、ボタンを押すことでLEDの光らせ方を変えるようにします。
冷却ファンのLED発光制御プログラム
Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。
Arduino IDE スケッチ例
今回のプログラムは、GitHubに保存しています。
ダウンロードして、srcフォルダ内の「M5Stack_FAN_Control_v2.ino」を開いてください。
※プログラムは、タッチパネル専用になりますので、「M5Stack Core 2」で動作します。
Contribute to karakuri-musha/PCFanControl_for_M5StackCore2 d…
M5Stackへの書き込み
- 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
- 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。 ボード:「M5Stack Arduino」-「M5Stack-Core2」 「Partition Scheme」で「Not OTA(Large App)」を選択します。
- 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
プログラム実行結果
M5Stackを起動すると、画面上部に3つのタブ「FAN」「Color」「GAME」が表示されます。
今回のLED点灯制御プログラムは「Color」タブをタッチします。
また、「GAME」タブをタッチするとルーレットが表示され、ファンのLEDと連動して動きます!
それぞれの画面で動作させた際の動画をまとめました!ぜひご覧ください!
編集後記
いかがだったでしょうか。
M5Stackを使って、ファンコントローラの機能として、ARGBを使ってLEDを光らせてみました。
電子回路をブレッドボードに作っていますが、実際にやってみると面白いですよ。
何より、うまく動いた時の体験は素晴らしいものです。
最初は、揃えるものも何かと多くなりますが、一度揃えてしまえば、いろんなものが作れるようになります。
ぜひ、皆さんもチャレンジしてみてくださいね!
今回の記事は以上になります。
最後までご覧いただきありがとうございました。
これからはじめる方にお勧めの参考図書はこちら!
アイデアをカタチにする! M5Stack入門&実践ガイド | M5Stack&M5StickCではじめるIoT入門 | みんなのM5Stack入門 | ESP32&Arduino 電子工作 プログラミング入門 | みんなのArduino入門 |
確認する | 確認する | 確認する | 確認する | 確認する |
記事内でご紹介した商品はこちら!
Cooler Master MasterFan SF120M ARGB
自作パソコンのパーツメーカーであるCooler Masterの120㎜冷却ファンです。
防振モーター、振動を抑えるダンピングフレームデザインなど、工業用グレードの素材を用いていて、高性能、安定性、耐久性を実現した、冷却ファン製品です。
ファン側で回転モードを3モード選択でき、高回転モードで、5.5-22 dBという静けさを実現しています。
風量も62 CFM (Max)とかなりいいです。このファンに交換することで、自作PCをさらに静かにできますよ!交換してみてはいかがでしょうか?
Amazonで確認
また今回使う「M5Stack」は、「M5Stack Core 2」を使います。 タッチパネル、マイク、6軸IMU搭載で、一台でいろいろ遊べるモデルになっています。
M5Stack Core2 開発キット
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!
Amazonで確認
ブレッドボードのおすすめ
安心のサンハヤト。両端に「+」と「ー」のラインがあります。電圧の違う回路を扱う場合に便利なブレッドボードです。最初はこれが一枚あるとよいと思います。
Amazonで確認
コスパ最強のブレッドボード。両端に「+」と「ー」のラインがあります。よく3枚で〇〇〇円というのはありますが、1枚から買えて価格も抑えてあるのでよいと思います。価格も良心的です。
Amazonで確認
Raspberry pi用と書かれていますが、Arduinoでも使えます。ブレッドボードやケーブルなど、一式が入っています。 これを一式購入して、不足分を追加購入する形がおススメです。
Amazonで確認
電源アダプター(12V)
12V1.5A出力の電源アダプターです。PSEマーク認証がとられているものを選定しています。
この商品はセンタープラスの電源アダプタです。
Amazonで確認
電源アダプター(5V)
5V1.5出力の電源アダプターです。PSEマーク認証がとられているものを選定しています。
この商品はセンタープラスの電源アダプタです。
外径5.5㎜、内径2.1㎜のアダプター付きのものです。
Amazonで確認
ブレッドボード用DCジャックDIP化キット(完成版)

型番:AE-DC-POWER-JACK-DIP
ピンヘッダ
入手元:秋月電子
型番:PH-1x40SG(6.1/6.1)
両端のピンが長いものになります。冷却FANと接続する側のピンとして使います。
40ピンありますので、4ピン分を切って使います。
秋月電子さんの通販サイトURLはこちらです。
ジャンパワイヤ/ジャンパ線
ブレッドボード上に配線する際に便利なワイヤです。
単線タイプなのでボードに密着させて配線できるので線がごちゃごちゃせず、わかりやすくなります。
Amazonで確認
ブレッドボードとM5Stackなどのコネクタを持つ部品をつなぐ配線材です。
オス(pin)ーオス(pin)の200mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。
Amazonで確認