フォト
2025年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

« ESP-WROOM-02を始めました(4) WiFi経由でLEDを制御 | トップページ | 4連8x8ドットLEDマトリックスを試してみる 続編 »

2016年7月 4日 (月)

4連8x8ドットLEDマトリックスを試してみる

Aliexpressで4連の8x8ドットLEDマトリックが格安で売っていたので入手しました。
ドライバーにMAX7219を4つ使った製品です。

なんか、ドットマトリックスばっかりやってる感がありますが、表示器の制御は
面白いです。

MAX7219 Dot Matrix Module For Arduino Microcontroller 4 In One Display with 5P Line

01

到着した製品はこんな感じです。

Matrix

早速、Arduinoにて動作確認してみました。
輝度が強く、眩しいので輝度設定を最小にしました。LEDマトリック自体は明るい製品みたいです。

Dscn5373

Arduinoとの接続は5線(VCC、GND、DIN、CLK、LOAD)のみです。シフトレジスタを
使うような感じでデータを送ります。

購入した2つのうち1つは1ドット点灯しない不具合を発見。
入れ替ると点灯するので基板ではなく、8x8ドットLEDマトリックス1個が不良のようです。
まあ、これは諦めましょう。

本製品で使われている8x8ドットLEDマトリックスは5個で$3で売っているのでそちらを
買って差し換えるつもりです。

Dscn5377

動いている様子


4文字表示できると時刻や気温の表示なんかにも使えそうです。


スケッチ(プログラムソース)
ダウンロード max7219_test.zip (5.6K)

4連結の制御にちょっとはまりましたが、取りあえず出来ました。
下記のライブラリを参考にさせて頂き、制御部分を作成しました。
  https://github.com/lstoll/arduino-libraries/tree/master/Matrix

日本語フォント表示は美咲フォントを使わせて頂きて、自作ライブラリにて
行っています。コンパイルには上記スケッチとは別に下記が必要となります。

  Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
  https://github.com/Tamakichi/Arduino-misakiUTF16

Arduino IDEの環境では文字コードとしてUTF-8が使われています。
デモスケッチでは、表示する日本語文字列はそのままUTF-8文字列にて指定できます。

日本語文字列の指定例(スケッチより抜粋)

// デモ1
void demo2() {
  uint8_t font[8];
  uint8_t* ptr = MAX7219_getBuffer();

  char* str = "こんにちは埼玉県!熱いぞ!埼玉県!";

  MAX7219_clear();
  while(1) {
    str = getFontData(font, str);  // フォントデータの取得
    if (!str)
      break;
    scrollInFont(ptr, font, 30);
  }
}

Arduino用 美咲フォントライブラリは、Arduinoのフラッシュメモリの容量の制約から
利用できるフォントを教育漢字に絞っています。ですのであまり難しい漢字は表示できません。

さて、2つあるので繋げてなんとか32x16ドット表示を実装したいですね。
その後は、ESP-WROOM-02に繋げてインターネットから取得した情報を表示なんてのを
やってみたいです。

関連記事
4連8x8ドットLEDマトリックスを試してみる 続々編
4連8x8ドットLEDマトリックスを試してみる 続編
・4連8x8ドットLEDマトリックスを試してみる (この記事です)

« ESP-WROOM-02を始めました(4) WiFi経由でLEDを制御 | トップページ | 4連8x8ドットLEDマトリックスを試してみる 続編 »

通販」カテゴリの記事

arduino」カテゴリの記事

表示器制御関連」カテゴリの記事

コメント

こちらのブログを参考にプログラム頂き実行したのですが、「またいさ」と逆に表示されました。
スクロールも逆から流れてしまいました。どこを修正すると順番になりますか?お手数おかけしますが、何卒ご指導よろしくお願いします。

> 「またいさ」と逆に表示、スクロールも逆
推測で回答しますが、お手持ちの製品の回路図等の仕様を教えて下さい。

おそらく、LEDマトリックスの並びが私所有のものを基準とした場合、
私 :[0][1][2][3]
質問者:[3][2][1][0]
となっていると思われます。

対応策としては、
スケッチの MAX7219_matrix.cpp 内の MAX7219_update() 関数内のfor文
for (byte j=0; j < _screens; j++) {
・・・
}
のjの値を0 から _screens-1 (ここでは_screens=4) に変化させる部分を
_screens-1 から 0 に変化させるように修正すれば良いと思います。

for (byte j=_screens-1; j >=0; j--) {
・・・
}

返答が遅くなりすみませんでした。
ご指摘いただいた部分のスケッチで思うように動作しなかった為、あとはこちらで幾つか修正したら動作しました。
使用した機材と写真(googleDrive)のURLを記載させていただきます。修正する箇所を迅速に教えて頂き感謝しております。これからも応援しております!!

kwmobile 8x32 LED ドットマトリックス モジュール - Raspberry Pi Arduino DIY キット MCU - ディスプレイ 表示モジュール MAX7219 https://www.amazon.co.jp/dp/B06XJ9ZX17/ref=cm_sw_r_cp_tai_T3jxEbBEAQTCG

https://drive.google.com/drive/folders/1-EesHlG4FRcSMECgGTKrVzueX32JAK1j

返信ありがとうございます。

見た目が全く同じ製品ですね。それで微妙に仕様が異なるのは厄介ですね。
私の勉強になりました。

最近arduinoに魅せられて始めました老人ですが max7219_test.ino にてドットマトリクスの動作を勉強いたしておりますが4連を8連にするには (#define SCREENS 4 // MAX7219カスケード接続数) を 8にして動作させましたが 4連*2 になって表示がおかしいのですが、どのようにしましたら8連になるのでしょうか?ご教授よろしくお願いいたします。

> 最近arduinoに魅せられて始めました老人ですが...

max7219_test.inoは、SCREENSを8にした場合の動作は未検証です。
おそらく、正常の動作しないと思います。

SCREENSを8にしたケースは、続きの記事の
・4連8x8ドットLEDマトリックスを試してみる 続編
https://nuneno.cocolog-nifty.com/blog/2016/07/48x8led-066c.html
にて行っています。この記事では横に4x縦2の8個構成で表示をしています。

ご返答ありがとうございました。続編を試してみましたところやっと思い通りの物ができあがりました。
大分理解に苦しみましたがなんとか完了しました長らく返信できなくて申し訳ありませんでした。
たま吉さん大変お世話になりました。また判らないことがありましたらその節はよろしくお願いします。

> ご返答ありがとうございました。続編を試してみましたところやっと思い通りの物ができあがりました。

ご連絡ありがとうございます。
お役に立てて何よりです。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 4連8x8ドットLEDマトリックスを試してみる:

« ESP-WROOM-02を始めました(4) WiFi経由でLEDを制御 | トップページ | 4連8x8ドットLEDマトリックスを試してみる 続編 »