.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! 変数 ======== 変数はプログラム内で最も強力で重要なツールの一つです。これにより、私たちのプログラム内でデータを保存し、呼び出すことができます。 以下のスケッチファイルは変数を使用しています。オンボードLEDのピン番号を変数 ``ledPin`` に、数字 "500" を変数 ``delayTime`` に保存します。 .. code-block:: C :emphasize-lines: 1,2 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の点滅が長くなります。 .. code-block:: C 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つが必要です。データ型は変数からスペースで区切り、変数の宣言は ``;`` で終了する必要があります。 この変数を例に取り上げてみましょう。 .. code-block:: C int delayTime; **データ型** ここで ``int`` は整数型と呼ばれるデータ型であり、-32768から32766までの整数を保存するために使用できます。また、小数を保存するためには使用できません。 変数は整数以外のさまざまなデータを保持することができます。Arduino言語(実際にはC++です)は、以下に挙げる最も頻繁に使用されるものに対して組み込みのサポートを持っています。 * ``float``: 小数点数を保存します、例:3.1415926。 * ``byte``: 0から255までの数値を保持します。 * ``boolean``: ``True`` または ``False`` の2つの可能な値のみを保持しますが、メモリ内で1バイトを占有します。 * ``char``: -127から127までの数値を保持します。 ``char`` としてマークされると、コンパイラはそれを |link_ascii| の文字に一致させようとします。 * ``string``: 文字列、例: ``Halloween`` を保存できます。 **変数名** 変数名は好きな名前に設定できます。例えば、 ``i`` 、 ``apple`` 、 ``Bruce`` 、 ``R2D2`` 、 ``Sectumsempra`` などですが、守るべき基本的なルールがいくつかあります。 1. それが何のために使用されるのかを説明します。ここでは、変数をdelayTimeと名付けたので、それが何をするのかを簡単に理解できます。変数名を ``barryAllen`` にするのも構いませんが、コードを見ている人に混乱をもたらします。 2. 一般的な命名法を使用します。CamelCaseを使用することができ、私は ``delayTime`` の初めのTを使用して、変数が2つの単語で構成されていることが容易に分かるようにしました。また、UnderScoreCaseを使用して変数を ``delay_time`` として書くこともできます。プログラムの実行に影響はありませんが、好みの命名法を使用すると、プログラマがコードを読むのが容易になります。 3. キーワードを使用しないでください。"int"をタイプするときと同じように、Arduino IDEはそれが特別な目的を持つ単語であることを思い出させるためにそれを色付けします。それは変数名として使用することができません。もしそれが色付けされていれば、変数の名前を変更します。 4. 特別な記号は許可されていません。例えば、スペース、#, $, /, +, %などです。英字(大文字・小文字を区別)、アンダースコア、数字の組み合わせは十分ですが、数字は変数名の最初の文字として使用することはできません。 **変数に値を割り当てる** 変数を宣言したら、データを格納する時が来ます。代入演算子(すなわち ``=`` )を使用して変数に値を入れます。 変数を宣言すると同時にその値を割り当てることができます。 .. code-block:: C int delayTime = 500; また、ある時点で新しい値を割り当てることも可能です。 .. code-block:: C int delayTime; // 値なし delayTime = 500; // 値は500 delayTime = delayTime +200; // 値は700