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() の宣言を修正。