ゆるく楽しむプログラミング

HT16K33 マトリクスLEDドライバ

マトリクスLEDを制御するI2C接続のLEDドライバですが
4桁7セグメントLEDユニットのコントローラに使用されて
安価な時計表示用LEDとして出回っているようです。

▼のLEDユニットはVK16K33を使用しています。
 スペックシートからHT16K33との違いが分からなかったので互換品と考えて良いと思います。
 HT16K33の動作電圧は4.5V~になっていますが、LEDユニットは3.3Vで動作しました。

16×8LEDマトリクスドライバーモジュール(HT16K33)

HT16K33のコマンド

HT16K33 / VK16K33 Command
コマンド 動作
20h システムクロック無効
21h システムクロック有効
80h Display OFF
81h Display ON / Blink OFF
83h Display ON /Blink 2Hz
85h Display ON /Blink 1Hz
87h Display ON /Blink 0.5Hz
E0h~EFh 輝度
00h~0Fh アドレス指定
※アドレスの後にビットパターンを指定
  ビットパターンは連続して書き込み可能

4桁7セグメントLEDユニットとの対応

元が16x8マトリクスLEDのドライバなので、7セグメントLEDでは偶数アドレスのみ使用しています



ビットとLEDセグメントとの対応は▼ コロン(:)は Bit2に割り当てられていました。



8x8 LEDマトリクスとの接続




C0~C7をカソード側(LEDマトリックスのROW1~ROW8)に接続
A0~A8をアノード側(LEDマトリックスのCOL1~COL8)に接続

LEDマトリックスを2個使用する場合はA9~A15を2個目のLEDマトリックスの
アノード側(LEDマトリックスのCOL1~COL8)に接続
カソード側(LEDマトリックスのROW1~ROW8)はC0~C7に接続する。

LEDマトリックスによっては、アノードとカソードが逆だったり、ピン配置が違ったりするので注意
 16×8LEDマトリクスドライバーモジュール(HT16K33)  赤色ドットマトリクスLED 8×8ドット OSL641501-BRA

アドレスとLEDの対応は▼ LEDマトリックスを1個しか使用しない場合は、奇数アドレスは無効になる。

4桁7セグメントLEDユニット / 16x8 LEDマトリクスを操作するサンプルスケッチ

M5Stack/M5Atomで使用する場合には、Wire.begin() の宣言を修正。

YuruPuro/HT16K33-7SEG.ino

解説動画