iikagenlabo

興味のあることを良い加減で研究していきます

M5Stackで自作LEDマトリクスを光らせる(2)

4×4の自作LEDマトリクスを光らせるために配線します。
アノード側とカソード側それぞれ4本ずつの8本の制御線が必要です。
M5Stackに付属のコードが色分けされていてよい感じなのでこれを使います。

LEDマトリクスとM5Stackの配線は次のようにしました。
電流制限抵抗はカソード側につけて、その先をM5Stackにつなぎます。

f:id:iikagenlabo:20190531012145j:plain

ピンのつなぎ方は下の通りです。

A B C D a b c d
5 12 17 16 18 19 23 22

 

次に点灯させるためのスケッチを書きます。
こちらのサイトを参考にさせてもらいました。
https://www.hiramine.com/physicalcomputing/arduino/matrixled.html
ピン番号がちがうだけでほぼそのままですね。
アノード側をLOW、カソード側をHIGHで初期化しておくのがポイントです。 

#include <M5Stack.h>

//  ピン番号の定義
int a_pin[4] = {  5,  2, 17, 16 };
int c_pin[4] = { 18, 19, 23, 22 };

void setup() {
  //  アノード側の初期化
  for(int lp1 = 0; lp1 < 4; lp1++)
  {
    pinMode(a_pin[lp1], OUTPUT);
    digitalWrite(a_pin[lp1], LOW);
  }
  //  カソード側の初期化
  for(int lp1 = 0; lp1 < 4; lp1++)
  {
    pinMode(c_pin[lp1], OUTPUT);
    digitalWrite(c_pin[lp1], HIGH);
  }
}

//  static点灯
void loop() {
  // アノードのループ
  for( int ano = 0; ano < 4; ano++ )
  {
    digitalWrite( a_pin[ano], HIGH );
    // カソードのループ
    for( int cat = 0; cat < 4; cat++ )
    {
      digitalWrite( c_pin[cat], LOW );
      delay(100); //点灯時間
      digitalWrite( c_pin[cat], HIGH );
    }
    digitalWrite( a_pin[ano], LOW );
  }
}

動作テストのために順番に点灯させます。

完成。