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」カテゴリの記事
- 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)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「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ドットマトリックスを制御してみた »
コメント