記事内に広告が含まれています

電子工作で便利に使えるArduino言語の条件分岐の基本

Arduino

Arduino言語の条件分岐のやり方

Arduino言語(C/C++ベース)では、条件分岐を主にifelse ifelse文やswitch文を使って実現します。

if

条件が真(true)の場合に特定のコードを実行します。

構文

if (条件) {
  // 条件が真の場合に実行されるコード
}

int sensorValue = analogRead(A0);
if (sensorValue > 500) {
  digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯
}

センサーの値が500を超えると、LEDが点灯します。

if-else

条件が真でない場合に別のコードを実行します。

構文

if (条件) {
  // 条件が真の場合に実行されるコード
} else {
  // 条件が偽の場合に実行されるコード
}

int sensorValue = analogRead(A0);
if (sensorValue > 500) {
  digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯
} else {
  digitalWrite(LED_BUILTIN, LOW); // LEDを消灯
}

センサーの値が500を超えるとLEDが点灯し、それ以外の場合は消灯します。

if-else if-else

複数の条件を順に評価します。

構文

if (条件1) {
  // 条件1が真の場合に実行されるコード
} else if (条件2) {
  // 条件2が真の場合に実行されるコード
} else {
  // すべての条件が偽の場合に実行されるコード
}

int temperature = 25;
if (temperature < 15) {
  Serial.println("寒い");
} else if (temperature <= 25) {
  Serial.println("快適");
} else {
  Serial.println("暑い");
}

温度に応じて異なるメッセージを出力します。

switch

特定の値に基づいて複数の分岐を処理します。多くの条件を扱う場合に便利です。

構文

switch (変数) {
  case 値1:
    // 変数が値1の場合に実行されるコード
    break;
  case 値2:
    // 変数が値2の場合に実行されるコード
    break;
  default:
    // どの値にも一致しない場合に実行されるコード
    break;
}

int buttonState = 2;
switch (buttonState) {
  case 1:
    Serial.println("ボタン1が押されました");
    break;
  case 2:
    Serial.println("ボタン2が押されました");
    break;
  default:
    Serial.println("ボタンが押されていません");
    break;
}

buttonStateの値に応じて異なるメッセージを出力します。なお、breakがないと次のcaseも実行されるので注意が必要です。

条件式で使える演算子

条件分岐では以下の演算子をよく使います。

  • 比較演算子: ==(等しい)、!=(等しくない)、<><=>=
  • 論理演算子: &&(AND)、||(OR)、!(NOT)

int a = 10, b = 20;
if (a > 5 && b < 30) {
  Serial.println("両方の条件が真");
}

注意点

  • 条件式の書き方: 条件式はtrueまたはfalseを返す必要があります。
  • ブロックの使用: {}で囲まれたブロックを使うことで、複数行のコードを条件分岐内に記述できます。
  • ネスト: 条件分岐を入れ子にすることも可能ですが、コードの可読性を保つため、深すぎるネストは避けましょう。

まとめ

  • 単純な条件分岐にはifやif-elseを使用。
  • 複数の条件を扱う場合はelse ifやswitchを活用。
  • 条件式には比較演算子や論理演算子を組み合わせて柔軟に対応。
  • 実際のArduinoプロジェクトでは、センサー値や入力に基づいて条件分岐を活用して制御を行います。

コメント

タイトルとURLをコピーしました