二次元配列

「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)


それでは、二次元配列を使ったプログラムを組んでみましょう。プログラムが完成してうまく動作することを確認したら、次のプログラム例と見比べてみましょう。

前の記事

「A」の点灯 – プログラム例2

次の記事

LEDの点灯パターンの二進数表記