HT16K33を使った8x16 LEDドットマトリックスの表示
Aliexpressで購入して放置していた LEDドライバ HT16K33 を使ってみました。
8x8 LEDドットマトリックス を2個(8x16) 直接制御できます。
arduinoからはI2Cバスで接続して制御できます。


ブレレッドボードで使うには1.27mm 28pin SOP がちょっと面倒です。
今回は2.54mmに変換する基板を利用しました。

配線が多いですが、部品は少なくて意外と楽です。
取りあえずデーターシートを読んで、簡単なサンプルプログラムを作成しました。
I2Cでのやり取りのコマンドも簡単でシンプルで使いやすいです。
ライブラリも公開されているので試してみました(トップの写真)。
ライブラリ: adafruit/Adafruit-LED-Backpack-Library
ただし、利用しているLEDドットマトリックスの都合上、
そのままでは利用出来ませんでした。
データシード上のROWとCOLは次のような配線を要求しています。
これに従って私の持つ8x8 LED ドットマトリックスを使うには、次のように配置します。
(黒い●は接続ピンヘッダです)
しかしブレッドボード上に載せる都合上、こんな感じにしないとダメです。

そこで、表示用パターンを出力する前に、パターンデータを変換するよう、
Adafruit_LEDBackpack.cpp のwriteDisplay()を修正しました(下記)。
void Adafruit_LEDBackpack::writeDisplay(void) {
// <<-- 追加 ここから
uint8_t raw[16];
uint8_t d;
uint16_t msk;
uint8_t t = 0;
msk = 0x8000;
for (uint8_t x=0; x <16;x++) {
d = 0;
for (uint8_t y=0; y < 8; y++) {
if (msk & displaybuffer[y]) {
d |= _BV(y);
}
}
raw[t] = d;
msk >>=1;
t++;
}
// 追加 ここまで -->>
Wire.beginTransmission(i2c_addr);
Wire.write((uint8_t)0x00); // start at address $00
for (uint8_t i=0; i<8; i++) {
/* 2行を差し換え
Wire.write(displaybuffer[i] & 0xFF);
Wire.write(displaybuffer[i] >> 8);
*/
Wire.write(raw[i+8]);
Wire.write(raw[i]);
}
Wire.endTransmission();
}
adafruit/Adafruit-LED-Backpack-Library はちょっと多機能でデカすぎなので、
自作のライブラリを制作しています。
使うICは2個だけで済みますし..
« Android-x86 4.4-r2(VirtualBox)の画面解像度の変更 | トップページ | HT16K33を2つ使ってLEDドットマトリックスを制御してみた »
「arduino」カテゴリの記事
- Freenove Mecanum ホイール カー キットを購入しました(2025.05.28)
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
「AVR」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用SJIS漢字フォントライブラリ SDカード版を作成しました(2018.10.30)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
「表示器制御関連」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる(2024.03.14)
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
« Android-x86 4.4-r2(VirtualBox)の画面解像度の変更 | トップページ | HT16K33を2つ使ってLEDドットマトリックスを制御してみた »

コメント