注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
スケッチの書き方のルール¶
友達に照明をつけてもらう場合、「照明をつけてください」とか「ライトをつけて、兄弟!」など、好きな口調で言うことができます。
しかし、Arduinoボードに何かをしてもらいたい場合、Arduinoプログラムの書き方のルールに従ってコマンドを入力する必要があります。
この章では、Arduino言語の基本的なルールを紹介し、自然言語をコードに翻訳する方法を理解するのに役立ちます。
もちろん、これは慣れるまで時間がかかるプロセスであり、初心者にとっては最もエラーが発生しやすい部分でもあるので、頻繁に間違えることがあっても大丈夫です。何度も試してみてください。
セミコロン ;
¶
手紙を書く時、各文の最後にピリオドを書くように、Arduino言語では、コマンドの終了をボードに伝えるために ;
を使用する必要があります。
「オンボードLEDの点滅」の例を取り上げてみましょう。正常なスケッチは以下のようになります。
例:
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);
}
次に、以下の2つのスケッチを見て、実行する前にArduinoで正しく認識できるかを推測してみましょう。
スケッチA:
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(13,HIGH)
delay(500)
digitalWrite(13,LOW)
delay(500)
}
スケッチB:
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(13,
HIGH); delay
(500
);
digitalWrite(13,
LOW);
delay(500)
;
}
結果としては、 スケッチA はエラーを報告し、 スケッチB は実行されます。
スケッチA のエラーは、
;
が欠落していることで、見た目は正常に見えますが、Arduinoは読み取ることができません。スケッチB は、人間にとっては反対に見えますが、実際には、インデント、改行、ステートメント内のスペースなど、Arduinoのプログラムには存在しないものですので、Arduinoのコンパイラにとっては、例と同じに見えます。
しかし、 スケッチB のようにコードを書かないでください。コードを書き、表示するのは通常、人間ですので、自分自身を困らせないでください。
中括弧 {}
¶
{}
はArduinoプログラミング言語の主要な構成要素で、ペアで表示される必要があります。
良いプログラムの慣習として、左の中括弧を入力した直後に右の中括弧を入力し、中括弧の間にカーソルを移動してステートメントを挿入するのが良いでしょう。
コメント //
¶
コメントはコンパイラが無視するスケッチの部分です。プログラムの動作方法を他者に伝えるために通常使用されます。
コードの行に2つの連続したスラッシュを書くと、コンパイラはその行の終わりまでの内容を全て無視します。
新しいスケッチを作成すると、2つのコメントが付属してきます。これら2つのコメントを削除しても、スケッチには何の影響もありません。
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
プログラミングにおいてコメントは非常に便利で、以下にいくつかの一般的な使用例を示します。
使用法A:このコードのセクションが何をするのかを自分自身や他者に伝える。
void setup() {
pinMode(13,OUTPUT); //ピン13を出力モードに設定、オンボードLEDを制御
}
void loop() {
digitalWrite(13,HIGH); // ピン13をHIGHにしてオンボードLEDを点灯
delay(500); // 500msの状態維持
digitalWrite(13,LOW); // オンボードLEDを消灯
delay(500); // 500msの状態維持
}
使用法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:
/* Blink */
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
コンパイラは identifier
を読み取ったときに自動的に token-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
が置き換えられ、プログラム内には存在しないことがわかります。
そのため、使用する際にいくつか注意点があります。
token-string
は手動でのみ変更でき、プログラム内の算術によって他の値に変換することはできません。;
のような記号の使用を避けてください。例えば、以下のように。
#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
を大文字にすることが推奨されています。