LEDの点滅 – プログラム例3

それでは、プログラムを変数を使ったものに書き換えてみましょう。

main.cpp 05-3

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

// ドットマトリクスLEDのアノードピンおよびカソードピン
int a0 = 0;
int a1 = 2;
int a2 = 4;
int a3 = 5;
int a4 = 16;
int a5 = 17;
int a6 = 18;
int a7 = 19;
int c0 = 21;
int c1 = 22;
int c2 = 23;
int c3 = 25;
int c4 = 26;
int c5 = 27;
int c6 = 32;
int c7 = 33;

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

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

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

  // 入出力設定(アノード)
  pinMode(a0, OUTPUT);
  pinMode(a1, OUTPUT);
  pinMode(a2, OUTPUT);
  pinMode(a3, OUTPUT);
  pinMode(a4, OUTPUT);
  pinMode(a5, OUTPUT);
  pinMode(a6, OUTPUT);
  pinMode(a7, OUTPUT);
  // 入出力設定(カソード)
  pinMode(c0, OUTPUT);
  pinMode(c1, OUTPUT);
  pinMode(c2, OUTPUT);
  pinMode(c3, OUTPUT);
  pinMode(c4, OUTPUT);
  pinMode(c5, OUTPUT);
  pinMode(c6, OUTPUT);
  pinMode(c7, OUTPUT);

  // 出力レベル設定(アノード)
  digitalWrite(a0, LOW);
  digitalWrite(a1, LOW);
  digitalWrite(a2, LOW);
  digitalWrite(a3, LOW);
  digitalWrite(a4, LOW);
  digitalWrite(a5, LOW);
  digitalWrite(a6, LOW);
  digitalWrite(a7, LOW);
  // 出力レベル設定(カソード)
  digitalWrite(c0, LOW);
  digitalWrite(c1, HIGH);
  digitalWrite(c2, HIGH);
  digitalWrite(c3, HIGH);
  digitalWrite(c4, HIGH);
  digitalWrite(c5, HIGH);
  digitalWrite(c6, HIGH);
  digitalWrite(c7, HIGH);

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

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

  digitalWrite(a0, HIGH); // LEDを点灯
  delay(1000);            // 待ち時間

  digitalWrite(a0, LOW);  // LEDを消灯
  delay(1000);            // 待ち時間
}
Code language: Arduino (arduino)

ドットマトリクスLEDの点滅は、想定どおりになりましたか?

前の記事

変数によるピン番号設定

次の記事

LEDの全点灯 – 課題1