記事内に広告が含まれています

LEDドライバーTM1628Aで表現力のあるドットマトリクスLEDディスプレイモジュールを自作

ARDUINO

はじめに

このところLED表示器の製作にハマり続いていますが、今回は7セグメントLEDと比べて表現力で優るマトリクスLEDを使用して10×7ドットディスプレイを製作しました。ドット単位での制御ができるので文字のスムーズスクロールなど動きのある表示が楽しめそうです。

外観写真で全体像を確認

今回も基板製造とSMD部品実装は手軽に利用できる中国の試作業者に依頼して、残りの挿入部品のLEDマトリックスと電源供給および制御信号入力用のピンヘッダを自分で手半田付けをしました。SMD部品の実装は業者で比較的安価にそして綺麗に仕上がるのでとても助かります。

完成形モジュールの外観写真(表・裏)は次の通りです。今回、基板のレジスト色には黒を使用したため、なかなか渋い感じに仕上がっています。

マトリックスLEDモジュールは、LEDディスプレイ側(表面)は筐体に組み込みやすいようにLED以外の部品を搭載せずに平面となるような仕様にして、背丈のあるICやコンデンサなどは反対面(裏面)に実装しました。

表面
裏面

回路はシンプルな設計

パーツ陣としては、主役選手のドットマトリックスLEDとそれを監督するコントロール用のLEDドライバーIC、縁の下で性能を支える電源回りのコンデンサで構成されたシンプルな回路です。

5×7ドットマトリックスLEDを2個使いにして10×7ドット=70ドットを制御できるように、LEDのコントロールICは、GRID端子(カソード側に接続)を7個、SEG端子(アノード側に接続)を10個備えているTM1628Aを採用しました。

回路図

Arduino用サンプルスケッチで文字スクロール動作確認

TM1637のようなTM16xxシリーズはよく利用されているICですので、すでにライブラリが準備されています。Tikerサンプルスケッチを少し改変して動作させましたので紹介します。

なお、今回使用しているLEDドライバーのArduinoライブラリーについてはこちらのサイトをご参照下さい。

#include <Adafruit_GFX.h>
#include <TM1628.h>
#include <TM16xxMatrixGFX.h>

TM1628 module(8, 9, 7);   // DIO=8, CLK=9, STB=7
#define MODULE_SIZECOLUMNS 7
#define MODULE_SIZEROWS 10
TM16xxMatrixGFX matrix(&module, MODULE_SIZECOLUMNS, MODULE_SIZEROWS);    // TM16xx object, columns, rows

String tape = "Arduino";
int wait = 100; // In milliseconds

int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels

void setup()
{
  matrix.setIntensity(1); // Use a value between 0 and 7 for brightness
  matrix.setRotation(0); 
  matrix.setMirror(false);   // set X-mirror true when using the WeMOS D1 mini Matrix LED Shield (X0=Seg1/R1, Y0=GRD1/C1)
}

void loop()
{
  for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) {
    matrix.fillScreen(LOW);

    int letter = i / width;
    int x = (matrix.width() - 1) - i % width;
    int y = (matrix.height() - 8) / 2; // center the text vertically

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < tape.length() ) {
        matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1);
      }

      letter--;
      x -= width;
    }
    matrix.write(); // Send bitmap to display
    delay(wait);
  }
}

Arduino互換ボードの”Maruduino Uno R3″を使用してスケッチを動かしました。Arduinoとの接続は下表と写真をご覧ください。

端子番号端子名I/OArduino 端子
1DIOI/OD8
2CLKInputD9
3STBInputD7
4+5VPower In5V
5GNDGroundGND
Arduino 開発環境 セットアップ

実際の動きはこのようになります。

動作確認

おわりに

ここまで3回にわたりLED表示器を作成してみたところ、LEDコントロール用の専用ドライバーICを使用することで簡単にLEDデバイスを取り扱うことができました。電子工作であればArduinoライブラリが準備されていることでさらに使用しやすいのでお勧めです。

このモジュールにご興味をお持ち頂けましたらBOOTHにて頒布していますので宜しくお願いします。

コメント

タイトルとURLをコピーしました