Arduino プログラムの構造

新しいスケッチファイルに目を通してみましょう。数行のコードが含まれているものの、実際には「空の」スケッチです。 このスケッチを開発ボードにアップロードしても、何も実行されません。

void setup() {
// 初期設定のコードはここに記述します。一度だけ実行されます:

}

void loop() {
// メインのコードはここに記述します。これは繰り返し実行されます:

}

もし setup()loop() を削除してスケッチを真に「空白」にした場合、検証に失敗することに気付くでしょう。 これらは人間の骨格に相当し、欠かせない要素です。

スケッチ作成の過程で、 setup() が最初に一度だけ実行されます。開発ボードが電源投入またはリセットされた後、その中のコード( {} 内)が一度だけ実行されます。 loop() は主要な機能を実装するために使用され、 setup() 実行後にその中のコードは繰り返し実行されます。

setup()loop() の動作をより深く理解するために、4つのスケッチを用いてみましょう。それぞれの目的は、Arduino のオンボードLEDを点滅させることです。各実験を順番に行い、その具体的な効果を記録してください。

  • スケッチ1:オンボードLEDを連続して点滅させる。

void setup() {
    // 初期設定のコードはここに記述します。一度だけ実行されます:
    pinMode(13,OUTPUT);
}

void loop() {
    // メインのコードはここに記述します。これは繰り返し実行されます:
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
}
  • スケッチ2:オンボードLEDを一回だけ点滅させる。

void setup() {
    // 初期設定のコードはここに記述します。一度だけ実行されます:
    pinMode(13,OUTPUT);
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
}

void loop() {
    // メインのコードはここに記述します。これは繰り返し実行されます:
}
  • スケッチ3:オンボードLEDを一回ゆっくり点滅させ、その後速く点滅させる。

void setup() {
    // 初期設定のコードはここに記述します。一度だけ実行されます:
    pinMode(13,OUTPUT);
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}

void loop() {
    // メインのコードはここに記述します。これは繰り返し実行されます:
    digitalWrite(13,HIGH);
    delay(200);
    digitalWrite(13,LOW);
    delay(200);
}
  • スケッチ4:エラーを報告する。

void setup() {
    // 初期設定のコードはここに記述します。一度だけ実行されます:
    pinMode(13,OUTPUT);
}

digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);

void loop() {
    // メインのコードはここに記述します。これは繰り返し実行されます:
}

これらのスケッチを活用して、 setup-loop のいくつかの特性を総括することができます。

  • 開発ボードが電源投入後、 loop() は繰り返し実行されます。

  • 開発ボードが電源投入後、 setup() は一度だけ実行されます。

  • 開発ボードが電源投入後、最初に setup() が実行され、その後 loop() が続きます。

  • コードは setup() または loop(){} スコープ内で記述する必要があり、フレームワークの外で書かれた場合はエラーとなります。

注釈

digitalWrite(13,HIGH) のような文は、オンボードLEDの制御に使用され、後の章でその詳細な使い方について説明します。