二次元配列
「A」という文字の点灯パターンは、各行について列ごとの値を指定することにより行います。
この様な行と列からなるデータの扱いには、二次元配列が適しています。二次元配列とは、配列の各要素がさらに配列になっているもので、以下のように書くことができます。
データ型 配列名 [ 行の数 ][ 列の数 ] = {
{ 1行1列の値 , 1行2列の値 , 1行3列の値 , 1行4列の値 , … },
{ 2行1列の値 , 2行2列の値 , 2行3列の値 , 2行4列の値 , … },
{ 3行1列の値 , 3行2列の値 , 3行3列の値 , 3行4列の値 , … },
{ 4行1列の値 , 4行2列の値 , 4行3列の値 , 4行4列の値 , … },
…
};
Code language: Arduino (arduino)
例えば、文字Aの点灯パターン(アノード側の出力レベル)は以下のような二次元配列で表すことができます。
// 文字Aの点灯パターン
int ledPatternA[8][8] = {
{ LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{ LOW, LOW, LOW, HIGH, LOW, LOW, LOW, LOW},
{ LOW, LOW, HIGH, LOW, HIGH, LOW, LOW, LOW},
{ LOW, HIGH, LOW, LOW, LOW, HIGH, LOW, LOW},
{ LOW, HIGH, LOW, LOW, LOW, HIGH, LOW, LOW},
{ LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW},
{ LOW, HIGH, LOW, LOW, LOW, HIGH, LOW, LOW},
{ LOW, HIGH, LOW, LOW, LOW, HIGH, LOW, LOW},
};
Code language: Arduino (arduino)
なお、今回の配線ではアノード側の列は右から順になっているので、各列の値の並びは実際の点灯パターンとは左右が反転しています。
配列の各要素には以下のようにアクセスすることができます。
配列名 [ 行 ][ 列 ]
Code language: Arduino (arduino)
例えば、2行目の4列目にアクセスしたい場合は次のようになります。
ledPattern[1][3]; // 2行4列(値は「HIGH」)
Code language: Arduino (arduino)
それでは、二次元配列を使ったプログラムを組んでみましょう。プログラムが完成してうまく動作することを確認したら、次のプログラム例と見比べてみましょう。