ドットマトリックスLEDは明るくて大きな表示ができるので,少しかじってみたくなりました。
まずは単色の8X16ドットマトリックスLEDをPICAXEで表示させてみました。以下メモ書きです。
![](https://stat.ameba.jp/user_images/20200322/21/pta55/9d/ac/j/o0800049514732265630.jpg?caw=800)
1.ハードウェア
1) システム構成
・PICAXE-20M2
・16X8LEDマトリクスドライバーモジュール(HT16K33)
I2C スレイブアドレス 0xE0(8bit),変更可
A0-A15:アノード,アクティブHigh
C0-C7:カソード,アクティブLow
・赤色ドットマトリクスLED8X8ドット OSL641501-ARA 2個
順電圧:2.1Vtyp,(@20mA)
カソード・コモン
マトリックスドライバが16X8ドットタイプなので,LEDを2個連結しました。
この構成で新たな材料費は1000円ぐらいでしたV(^^)
2) 配線と注意点
(1)ドットマトリックスLED
・ドライバモジュールからLED1個につき16本の配線が必要
・1番Pinは赤丸のシールのところ
(裏からレジン?を透すと微かに数字も見える)
・Pin番号は不規則に並んでいる
・5Vでは150Ωが必要,今回はアノード側に挟む
(2) ドライバーモジュール(HT16K33)
・説明書の一部にROWが列を表している箇所がある
・アノード(A0-15)を列と考え,2個のLEDそれぞれに接続する
・カソード(C0-7)を2個のLED共通の行と考えて接続する
2.ソフトウェア
1) ソフトの注意点
・イニシャライズはPower on reset後に必ず 「Turn on System oscilator 」コマンド(0x21)を加えること!
・初期画面はランダムなのでクリアしておく
・ドライブモジュールは2byte(16ドット)で1行なので,LED1個の場合はデータアドレスが飛び番地になる
2) テストプログラム例
![](https://stat.ameba.jp/user_images/20200322/21/pta55/23/e9/j/o0913074814732266130.jpg?caw=800)
・初期設定はPower on Resetの後
hi2cout(0x21) ; Turn on System oscilator
だけです(^^)
・「PTA」を描いてドットが動いて消す,だけのプログラムです(^^;;;;;;;;
![](https://stat.ameba.jp/user_images/20200322/21/pta55/32/2e/j/o1674083214732265628.jpg?caw=800)
3) 8X16ドットのデザイン用計算シート
描きたいドットからbyteの数値を求めるのが面倒だったので,表計算で出せるように簡単なシートを作りました。
![](https://stat.ameba.jp/user_images/20200322/21/pta55/6a/5b/j/o0586031214732266134.jpg?caw=800)
各行の8bit毎に計算してbyteの値を出し,文字に変換してカンマ”,”を挟んで連結しています。赤枠のところをプログラムにコピペすれば「PTA]が表示できます (^^)
ドットマトリックスLEDは明るくクッキリして良いですね。
I2CでRAMに書き込むタイプのドライバはゆっくりしたPICAXEでも十分に使えます。手作り感満載で,いろいろと応用できそうです。
ま,NeoPixel系などはナノ秒の世界のコントロールも必要ですから,Arduinoでもライブラリにおまかせで手出しできず,少し寂しいですからね。
でも,カラーで大きくなると手作りは限度を超えます。8X16の単色で,モジュールを使ってみても,,,良く分かりました(^^)
まずは単色の8X16ドットマトリックスLEDをPICAXEで表示させてみました。以下メモ書きです。
![](https://stat.ameba.jp/user_images/20200322/21/pta55/9d/ac/j/o0800049514732265630.jpg?caw=800)
1.ハードウェア
1) システム構成
・PICAXE-20M2
・16X8LEDマトリクスドライバーモジュール(HT16K33)
I2C スレイブアドレス 0xE0(8bit),変更可
A0-A15:アノード,アクティブHigh
C0-C7:カソード,アクティブLow
・赤色ドットマトリクスLED8X8ドット OSL641501-ARA 2個
順電圧:2.1Vtyp,(@20mA)
カソード・コモン
マトリックスドライバが16X8ドットタイプなので,LEDを2個連結しました。
この構成で新たな材料費は1000円ぐらいでしたV(^^)
2) 配線と注意点
(1)ドットマトリックスLED
・ドライバモジュールからLED1個につき16本の配線が必要
・1番Pinは赤丸のシールのところ
(裏からレジン?を透すと微かに数字も見える)
・Pin番号は不規則に並んでいる
・5Vでは150Ωが必要,今回はアノード側に挟む
(2) ドライバーモジュール(HT16K33)
・説明書の一部にROWが列を表している箇所がある
・アノード(A0-15)を列と考え,2個のLEDそれぞれに接続する
・カソード(C0-7)を2個のLED共通の行と考えて接続する
2.ソフトウェア
1) ソフトの注意点
・イニシャライズはPower on reset後に必ず 「Turn on System oscilator 」コマンド(0x21)を加えること!
・初期画面はランダムなのでクリアしておく
・ドライブモジュールは2byte(16ドット)で1行なので,LED1個の場合はデータアドレスが飛び番地になる
2) テストプログラム例
![](https://stat.ameba.jp/user_images/20200322/21/pta55/23/e9/j/o0913074814732266130.jpg?caw=800)
・初期設定はPower on Resetの後
hi2cout(0x21) ; Turn on System oscilator
だけです(^^)
・「PTA」を描いてドットが動いて消す,だけのプログラムです(^^;;;;;;;;
![](https://stat.ameba.jp/user_images/20200322/21/pta55/32/2e/j/o1674083214732265628.jpg?caw=800)
3) 8X16ドットのデザイン用計算シート
描きたいドットからbyteの数値を求めるのが面倒だったので,表計算で出せるように簡単なシートを作りました。
![](https://stat.ameba.jp/user_images/20200322/21/pta55/6a/5b/j/o0586031214732266134.jpg?caw=800)
各行の8bit毎に計算してbyteの値を出し,文字に変換してカンマ”,”を挟んで連結しています。赤枠のところをプログラムにコピペすれば「PTA]が表示できます (^^)
ドットマトリックスLEDは明るくクッキリして良いですね。
I2CでRAMに書き込むタイプのドライバはゆっくりしたPICAXEでも十分に使えます。手作り感満載で,いろいろと応用できそうです。
ま,NeoPixel系などはナノ秒の世界のコントロールも必要ですから,Arduinoでもライブラリにおまかせで手出しできず,少し寂しいですからね。
でも,カラーで大きくなると手作りは限度を超えます。8X16の単色で,モジュールを使ってみても,,,良く分かりました(^^)