今回の経緯
- フルカラーLEDを最大5個制御したい!
- 最初NeoPixel(マイコン内蔵LED)を使う予定だったが、いろいろ試した結果、今回の条件では使えなさそうという結論になった。
- マイコン内蔵ではない、通常のフルカラーLEDを使うことにする。
- ただ、使用できるピン数は限られているため、マイコンボードからはI2CやSPI等で制御する形にしたい。
- フルカラーLEDドライバを探す。
- スイッチサイエンスで探したらよさそうなのがあったけど値が張る。
- 秋月でさがしたらこんなのがあった。
- 安い。もともとはドットマトリクス制御用らしいが、フルカラーLED制御にも転用できそう。
準備物
部品名 | 購入先 |
---|---|
ESPr Developer 32 | スイッチサイエンス |
16×8LEDマトリクスドライバーモジュール(HT16K33) | 秋月電子通商 |
RGBフルカラーLED | 秋月電子通商 |
結果
- とりあえず2個のフルカラーLEDを制御できた。
- ただし、r, g, bはそれぞれ0(OFF)か1(ON)でしか調整することは出来ない。
プログラムとハマりポイント
- プログラム
- ハマりポイント
- I2Cアドレスでハマった。
- 秋月の解説ページでは初期状態なら
0xE0
(write)と書いてあったので、Arduinoのスケッチでアドレスを0xE0
に指定したがなにも反応しなかった。 - 調べてみるとこの方法は誤りで、Arduinoの場合は最下位ビットを除いた7ビット分をアドレス値に設定する必要があるらしい。
- スレーブアドレスを
0x70
と設定したらうまくいった。 - 参考:https://tool-lab.com/make/pic-practice-37/
雑記
- いま探したらaitendoでもっと安い、100円のフルカラーLEDドライバ(単体)があった。
- ただこっちはチップ単体の値段だし、データシートが中文で読むのが大変そう…。