変数¶
変数はプログラム内で最も強力で重要なツールの一つです。これにより、私たちのプログラム内でデータを保存し、呼び出すことができます。
以下のスケッチファイルは変数を使用しています。オンボードLEDのピン番号を変数 ledPin
に、数字 "500" を変数 delayTime
に保存します。
int ledPin = 13;
int delayTime = 500;
void setup() {
pinMode(ledPin,OUTPUT);
}
void loop() {
digitalWrite(ledPin,HIGH);
delay(delayTime);
digitalWrite(ledPin,LOW);
delay(delayTime);
}
待って、これは #define
の動作を複製しているのでしょうか?答えはNOです。
#define
の役割はテキストを単純かつ直接に置き換えることであり、プログラムの一部としてコンパイラに認識されることはありません。一方、
variable
はプログラム内に存在し、値を保存し呼び出すために使用されます。defineではできないことですが、プログラム内でその値を変更することもできます。
以下のスケッチファイルでは、変数に自己追加が行われ、各点滅ごとにオンボードLEDの点滅が長くなります。
int ledPin = 13;
int delayTime = 500;
void setup() {
pinMode(ledPin,OUTPUT);
}
void loop() {
digitalWrite(ledPin,HIGH);
delay(delayTime);
digitalWrite(ledPin,LOW);
delay(delayTime);
delayTime = delayTime+200; // 実行ごとに値を200増やします
}
変数の宣言¶
変数を宣言するとは、変数を作成することを意味します。
変数を宣言するには、データ型と変数名の2つが必要です。データ型は変数からスペースで区切り、変数の宣言は ;
で終了する必要があります。
この変数を例に取り上げてみましょう。
int delayTime;
データ型
ここで int
は整数型と呼ばれるデータ型であり、-32768から32766までの整数を保存するために使用できます。また、小数を保存するためには使用できません。
変数は整数以外のさまざまなデータを保持することができます。Arduino言語(実際にはC++です)は、以下に挙げる最も頻繁に使用されるものに対して組み込みのサポートを持っています。
float
: 小数点数を保存します、例:3.1415926。byte
: 0から255までの数値を保持します。boolean
:True
またはFalse
の2つの可能な値のみを保持しますが、メモリ内で1バイトを占有します。char
: -127から127までの数値を保持します。char
としてマークされると、コンパイラはそれを ASCII table of characters の文字に一致させようとします。string
: 文字列、例:Halloween
を保存できます。
変数名
変数名は好きな名前に設定できます。例えば、 i
、 apple
、 Bruce
、 R2D2
、 Sectumsempra
などですが、守るべき基本的なルールがいくつかあります。
それが何のために使用されるのかを説明します。ここでは、変数をdelayTimeと名付けたので、それが何をするのかを簡単に理解できます。変数名を
barryAllen
にするのも構いませんが、コードを見ている人に混乱をもたらします。一般的な命名法を使用します。CamelCaseを使用することができ、私は
delayTime
の初めのTを使用して、変数が2つの単語で構成されていることが容易に分かるようにしました。また、UnderScoreCaseを使用して変数をdelay_time
として書くこともできます。プログラムの実行に影響はありませんが、好みの命名法を使用すると、プログラマがコードを読むのが容易になります。キーワードを使用しないでください。"int"をタイプするときと同じように、Arduino IDEはそれが特別な目的を持つ単語であることを思い出させるためにそれを色付けします。それは変数名として使用することができません。もしそれが色付けされていれば、変数の名前を変更します。
特別な記号は許可されていません。例えば、スペース、#, $, /, +, %などです。英字(大文字・小文字を区別)、アンダースコア、数字の組み合わせは十分ですが、数字は変数名の最初の文字として使用することはできません。
変数に値を割り当てる
変数を宣言したら、データを格納する時が来ます。代入演算子(すなわち =
)を使用して変数に値を入れます。
変数を宣言すると同時にその値を割り当てることができます。
int delayTime = 500;
また、ある時点で新しい値を割り当てることも可能です。
int delayTime; // 値なし
delayTime = 500; // 値は500
delayTime = delayTime +200; // 値は700