LEDの全点灯 – 配列を使ったプログラム例

プログラム例 6-3

#include <Arduino.h> // Arduino.h の読み込み

// ドットマトリクスLEDアノード側ピンの配列
int ledAnodePins[8] = {0, 2, 4, 5, 16, 17, 18, 19};
// ドットマトリクスLEDカソード側ピンの配列
int ledCathodePins[8] = {21, 22, 23, 25, 26, 27, 32, 33};

/*
 * setup 関数
 */
void setup() {
  /* ここにプログラムの最初に1回だけ実行したい処理を上から順に記述していきます */

  // シリアル通信を115200bpsで開始
  Serial.begin(115200);

  Serial.println("初期設定の開始");

  // 各アノード・カソード端子の設定
  for(int i=0; i<8; i++) {

    // 入出力設定
    pinMode(ledAnodePins[i], OUTPUT);
    pinMode(ledCathodePins[i], OUTPUT);

    // 出力レベル設定
    digitalWrite(ledAnodePins[i], HIGH);
    digitalWrite(ledCathodePins[i], HIGH);
  }

  Serial.println("初期設定の完了");
}

/*
 * loop 関数
 */
void loop() {
  /* ここにプログラム中で繰り返し実行したい処理を上から順に記述していきます */

  // 1 ~ 8 行目まで点灯行変更
  for(int i=0; i<8; i++) {
    // i行目を点灯
    digitalWrite(ledCathodePins[i], LOW);
    // 時間待ち
    delay(1);
    // i行目を消灯
    digitalWrite(ledCathodePins[i], HIGH);
  }
}
Code language: Arduino (arduino)

すっきりとしたコードになりましたね。

ダイナミック点灯によるLEDの全点灯。待ち時間を変えるとどうなるかも確認してみましょう。

前の記事

配列

次の記事

for文