Help us understand the problem. What is going on with this article?

LEDドットマトリクスパネル HUB75規格について調べてみた

追記(2019/10/20): 後日談ですが、当時結局この方法でC++のコードを書いたところ、うまく動きませんでした。おそらくどこかが間違っていると思われます。間違った情報をお伝えしてしまい、申し訳ありませんでした。

どうも、予定が一杯でリア充のかちおです(違

諸事情で秋葉原のピカリ館でHUB75型の32x32のLED Matrix Panelを購入し、いじろうと思ったのでメモ。調べても日本語情報全然出てこなかった。

どうやら通常はライブラリを使うらしいが、公式にはArduinoしか対応しておらず、なんとか汎用IOで操作したいため、データシートとにらめっこした。

公式のリファレンスとかデータシートとかサンプルコードを翻訳しながら書いていく。

画面構成

合計1024個のLED(とRGB)をすべて同時に光らせることは現実的ではないので、全16セクションに分けるとのこと。

32のLED、横に32列ある。
全部で32列。
1セクションは一番上の1列目と真ん中の17列目、2セクションは2と18列目…らしい。

余談ですが、32x16のパネルは1と9、2と10…って組み合わせらしい。まあそれが妥当。

セクション
1 1と17
2 2と18
3 3と19
16 16と32

1セクションは 32LED x 2列 で64LED。さらにRGBがあるので3を掛けて192。
なのでセクションごとにこの192bitを送ってあげればいいらしい。

人間の目からしたら残像だけど、実際には同時に1セクション(64LED)しか光らないらしい。
まあそうだよね。

セクション(192個のLED)の光らせ方

まず接続端子にR1、G1、B1、R2、G2、B2、っていうピンがあると思う。もしかしたら1と2じゃなくて0と1の組み合わせかもしれない。ぼくの場合はそうだった。

ブルース展開でいうと{R,G,B}{1,2}か{R,G,B}{0,1}ですね。
とりあえず1と2で行きます。

これによって、同時に2つのLEDの状態を制御できます。RGB2つ分ですね。
で、セクションの上の列と下の列のLEDをそれぞれ同時に光らせることができます。

なので、一回のデータ送信で、セクションの上の列と下の列の一番左のLEDを光らせられるとのこと。これを32回繰り返します。

なので、たとえば1列目を白色に交互に点灯、17列目を赤青緑交互に光らせたい場合は以下のようになります。
ちなみに送信するごとにのクロックは、接続端子CLKから送るようです。これもSLCKとか色々呼び方があるようす。
あと、送信データは逆の値(負論理)、つまり光らせたかったらLOW、消したかったらHIGHらしいです。

送信 1 2 3 4 5 6 7 32
R1 0 1 0 1 0 1 0 1
G1 0 1 0 1 0 1 0 1
B1 0 1 0 1 0 1 0 1
上の色
R2 0 1 1 0 1 1 0 0
G2 1 0 1 1 0 1 1 1
B2 1 1 0 1 1 0 1 1
下の色

セクションの選び方

これで同時に離れた2列を表示できるようになりました。次はセクションを選ぶ必要があります。
接続端子にABC(D)があると思うのですが、これがセクションを選ぶ4ビットになります。
2進数で、0000から1111です。これで1セクションから16セクションまでを選択するとのこと。

最終的なピンの操作順序

1. 全ピンをLOWにする。(最初だけ)


2. R1 G1 B1 R2 G2 B2をそれぞれ上に書いたようにLOWかHIGHにする。
3. CLKをHIGHにする。
4. CLKをLOWにする。これでLED2個分が書き込まれた。

5. これと同じように、2~4をあと31回繰り返す。これで1セクションのデータ分書き込み終わる。

6. ABCDの4bit使って送り込みたいセクションを決める。最初は0000とか。
7. OEをHIGHにする。画面表示有効のフラグらしい。
8. LAT(STB)をHIGHにする。これでLEDが光る。
9. LAT(STB)をLOWにする。
10. OEをLOWにする。

11. 以上、2~10をセクションを変えながら8回分繰り返す。これを高速で繰り返すことで画面を全部表示できる。ちなみに止めたらその瞬間消える(たぶん)

参考

https://hima-tubusi.blogspot.jp/2017/05/hub75_30.html
https://gist.github.com/CLCL/4509360739cccfca8f64
https://www.thingiverse.com/thing:1508087
https://cdn-learn.adafruit.com/downloads/pdf/32x16-32x32-rgb-led-matrix.pdf

onokatio
a.k.a おのかちお 最近はQiitaではなく自ブログに記事を書いています。↓
https://blog.katio.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした