スケッチの作成ルール

あなたが友人にライトをつけてもらう場合、"ライトをつけてください"や"ライトオン、ブロ"と言うことができます。好きな口調で言うことができます。

しかし、Arduinoボードに何かをしてもらいたい場合は、Arduinoのプログラム作成ルールに従ってコマンドを入力する必要があります。

この章では、Arduino言語の基本的なルールを紹介し、自然言語をコードに変換する方法を理解するのに役立ちます。

もちろん、これは慣れるのに時間がかかるプロセスであり、初心者にとっては最もエラーが発生しやすい部分でもあるので、間違えることが多くても大丈夫です。何度も試してみてください。

セミコロン ;

手紙を書くときのように、各文の最後に句点を書いて終わりとするように、Arduino言語ではコマンドの終了をボードに伝えるために ; を使用する必要があります。

「ボード上のLEDを点滅させる」というおなじみの例を取ってみましょう。正常なスケッチは次のようになります。

例:

void setup() {
    // ここに初期化コードを書く: 一度だけ実行されます
    pinMode(13,OUTPUT);
}

void loop() {
    // ここにメインのコードを書く: 繰り返し実行されます
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
}

次に、以下の2つのスケッチを見て、実行する前にArduinoに正しく認識されるかどうかを推測してみましょう。

スケッチA:

void setup() {
    // ここに初期化コードを書く: 一度だけ実行されます
    pinMode(13,OUTPUT);
}

void loop() {
    // ここにメインのコードを書く: 繰り返し実行されます
    digitalWrite(13,HIGH)
    delay(500)
    digitalWrite(13,LOW)
    delay(500)
}

スケッチB:

void setup() {
    // ここに初期化コードを書く: 一度だけ実行されます
    pinMode(13,OUTPUT);
}

void loop() {
    // ここにメインのコードを書く: 繰り返し実行されます
    digitalWrite(13,
HIGH);  delay
    (500
    );
    digitalWrite(13,

    LOW);
            delay(500)
    ;
}

結果として、 Sketch A はエラーを報告し、 Sketch B は実行されます。

  • Sketch A のエラーは、 ; が欠落している点で、見た目は普通ですが、Arduinoはこれを読むことができません。

  • Sketch B は、見た目は人間には不親切ですが、実際には、Arduinoプログラムではインデント、改行、ステートメントのスペースは存在しないので、Arduinoのコンパイラにとっては、例のように見えます。

しかし、 Sketch B のようにコードを書かないでください。通常、コードを書き、閲覧するのは自然な人々ですので、自分自身を困らせないようにしてください。

中括弧 {}

{} はArduinoプログラミング言語の主要なコンポーネントで、ペアで現れる必要があります。 より良いプログラムの慣習は、左の中括弧を入力した直後に右の中括弧を入力して、構造体を挿入し、カーソルを中括弧の間に移動してステートメントを挿入することです。

コメント //

コメントはコンパイラが無視するスケッチの部分です。通常、プログラムの動作方法を他者に伝えるために使用されます。

コードの行に隣接する2つのスラッシュを書くと、コンパイラはその行の最後まで何も無視します。

新しいスケッチを作成すると、2つのコメントが含まれています。これらのコメントを削除しても、スケッチに影響はありません。

void setup() {
    // ここに初期化コードを書く: 一度だけ実行されます
}

void loop() {
    // ここにメインのコードを書く: 繰り返し実行されます
}

プログラミングでのコメントは非常に役立ちます。以下にいくつかの一般的な使用例を示します。

  • 使用方法A: このコードのセクションが何をするのか、自分自身や他者に伝える。

void setup() {
    pinMode(13,OUTPUT); // ピン13を出力モードに設定、ボード上のLEDを制御します
}

void loop() {
    digitalWrite(13,HIGH); // ピン13をハイに設定して、ボード上のLEDを活性化
    delay(500); // 500 ms のまま
    digitalWrite(13,LOW); // ボード上のLEDをオフにする
    delay(500); // 500 ms のまま
}
  • 使用B: 一時的にいくつかの文を無効にする(削除せずに)そして、それらを使用する必要があるときにコメントを外すことで、それらを再度書き直す必要がない。これは、コードのデバッグを行い、プログラムのエラーの場所を特定するときに非常に便利です。

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);
}

注釈

コードを迅速にコメントまたはコメント解除するのに役立つショートカット Ctrl+/ を使用してください。

コメント /**/

// と同様のコメントです。このコメントは複数の行にわたることができ、コンパイラが /* を読むと、 */ が現れるまで後続の内容を無視します。

例1:

/* 点滅 */

void setup() {
    pinMode(13,OUTPUT);
}

void loop() {
    /*
    以下のコードはボード上のLEDを点滅させます。
    delay()内の数値を変更して、点滅の頻度を変更することができます。
    */
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
}

#define

これは便利なC++のツールです。

#define identifier token-string

コンパイラは、それを読むときに自動的に identifiertoken-string で置き換えます。これは、通常、定数定義に使用されます。

例として、defineを使用してコードの可読性を向上させるスケッチを以下に示します。

#define ONBOARD_LED 13
#define DELAY_TIME 500

void setup() {
    pinMode(ONBOARD_LED,OUTPUT);
}

void loop() {
    digitalWrite(ONBOARD_LED,HIGH);
    delay(DELAY_TIME);
    digitalWrite(ONBOARD_LED,LOW);
    delay(DELAY_TIME);
}

コンパイラにとって、実際には以下のように見えます。

void setup() {
    pinMode(13,OUTPUT);
}

void loop() {
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
}

identifier が置き換えられ、プログラム内に存在しないことがわかります。 したがって、使用する際のいくつかの注意点があります。

  1. token-string は手動でのみ変更でき、プログラムの算術で他の値に変換することはできません。

  2. ; のようなシンボルの使用を避ける。例えば。

#define ONBOARD_LED 13;

void setup() {
    pinMode(ONBOARD_LED,OUTPUT);
}

void loop() {
    digitalWrite(ONBOARD_LED,HIGH);
}

コンパイラはそれを以下のように認識し、エラーとして報告されます。

void setup() {
    pinMode(13;,OUTPUT);
}

void loop() {
    digitalWrite(13;,HIGH);
}

注釈

#define の命名規則は、変数との混同を避けるために identifier を大文字にすることです。