秋月で買った16x32ドットRGBフルカラーマトリクスLEDを使ってみようと思います。
まずは、秋月のサイトから説明書やライブラリをダウンロードします。
まずは、テストとして説明書通りにジャンプワイヤを使って
Arduino UNOにつないでみます。
LED基板にはシルクが無いのですが、マニュアルのP8の通りのようです。
接続は、P10,P11の通りです。
R1 - 2
G1 - 3
B1 - 4
R2 - 5
G2 - 6
B2 - 7
CLK - 8
OE - 9
A - A0
B - A1
C - A2
LAT -A3
GND - GND (GNDは4ピンありますが、3ピンだけつなぎました)
電源には5V 2A以上のACアダプタにつなぎます。
さっそく、testshapes_16x32 を書き込んでみます。
scrolltext_16x32はこうなりました。
plasma_16x32はこのようになりました。
とりあえずテストは動いたので、2枚つないでみようと思います。
ただ、スイッチサイエンスさんには気になることが書いてあります。
連続コネクタが使えると思ったのですが、無理っぽいようです。
さて、どうしたものか。
まずは、秋月のサイトから説明書やライブラリをダウンロードします。
まずは、テストとして説明書通りにジャンプワイヤを使って
Arduino UNOにつないでみます。
LED基板にはシルクが無いのですが、マニュアルのP8の通りのようです。
接続は、P10,P11の通りです。
R1 - 2
G1 - 3
B1 - 4
R2 - 5
G2 - 6
B2 - 7
CLK - 8
OE - 9
A - A0
B - A1
C - A2
LAT -A3
GND - GND (GNDは4ピンありますが、3ピンだけつなぎました)
電源には5V 2A以上のACアダプタにつなぎます。
さっそく、testshapes_16x32 を書き込んでみます。
scrolltext_16x32はこうなりました。
plasma_16x32はこのようになりました。
とりあえずテストは動いたので、2枚つないでみようと思います。
ただ、スイッチサイエンスさんには気になることが書いてあります。
連続コネクタが使えると思ったのですが、無理っぽいようです。
さて、どうしたものか。
32x16ビットマップを作って、バイナリデータ化して、Arduinoに入れて表示まではできたので、スケッチはアップしたのですが、表示幅が小さく、せめて2枚つなげたいです。
少々のちらつきや遅延は構わないので、Arduinoで2枚表示できるようライブラリをつつきたいのですが、どうやったらできそうですか、ご意見、情報がいただけるとうれしいです。
RGBmatrixPanel.cpp
を見てみると
Code common to both the 16x32 and 32x32 constructors:
となっていて、以下のようなコードが書いてあります。
32x32ができるなら、シリアルで送信しているだけなんだろうから、16x32を2枚接続するのはそのままでもできるような気がします。
これを眺めてはなんとかならないかと考えていますが、なにぶん技量が追い付かずとん挫しています。
コードを見ていただいて、ヒントがいただけないでしょうか。
// Constructor for 16x32 panel:
RGBmatrixPanel::RGBmatrixPanel(
uint8_t a, uint8_t b, uint8_t c,
uint8_t sclk, uint8_t latch, uint8_t oe, boolean dbuf) :
Adafruit_GFX(32, 16) {
init(8, a, b, c, sclk, latch, oe, dbuf);
}
// Constructor for 32x32 panel:
RGBmatrixPanel::RGBmatrixPanel(
uint8_t a, uint8_t b, uint8_t c, uint8_t d,
uint8_t sclk, uint8_t latch, uint8_t oe, boolean dbuf) :
Adafruit_GFX(32, 32) {
init(16, a, b, c, sclk, latch, oe, dbuf);
// Init a few extra 32x32-specific elements:
_d = d;
addrdport = portOutputRegister(digitalPinToPort(d));
addrdpin = digitalPinToBitMask(d);
}
ちなみにAdafruit_GFX()は
Adafruit_GFX.cppに
Adafruit_GFX::Adafruit_GFX(int16_t w, int16_t h):
WIDTH(w), HEIGHT(h)
{
_width = WIDTH;
_height = HEIGHT;
rotation = 0;
cursor_y = cursor_x = 0;
textsize = 1;
textcolor = textbgcolor = 0xFFFF;
wrap = true;
}
とあります。
https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/new-wiring
申し訳ありません。