今回の経緯

  1. フルカラーLEDを最大5個制御したい!
  2. 最初NeoPixel(マイコン内蔵LED)を使う予定だったが、いろいろ試した結果、今回の条件では使えなさそうという結論になった。
  3. マイコン内蔵ではない、通常のフルカラーLEDを使うことにする。
  4. ただ、使用できるピン数は限られているため、マイコンボードからはI2CやSPI等で制御する形にしたい。
  5. フルカラーLEDドライバを探す。
  6. スイッチサイエンスで探したらよさそうなのがあったけど値が張る。
  7. 秋月でさがしたらこんなのがあった。
  8. 安い。もともとはドットマトリクス制御用らしいが、フルカラー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ドライバ(単体)があった。
  • ただこっちはチップ単体の値段だし、データシートが中文で読むのが大変そう…。