Arduinoにおけるswitch case文の使用方法


switch case文は、特定の変数の値に基づいて複数の条件をチェックし、該当する条件に応じた処理を実行します。以下に基本的なswitch case文の構文を示します:

switch (変数) {
  case 値1:
    // 値1に対する処理
    break;
  case 値2:
    // 値2に対する処理
    break;
  case 値3:
    // 値3に対する処理
    break;
  default:
    // 上記のいずれの値にも該当しない場合の処理
    break;
}

上記のコードでは、変数の値が値1と一致する場合は、// 値1に対する処理 の部分が実行されます。変数の値が値2と一致する場合は、// 値2に対する処理 の部分が実行されます。同様に、値3に対する処理も定義されています。もし変数の値がどの値にも一致しない場合は、default以下の処理が実行されます。

以下に、実際のコード例をいくつか示します。

例1: デジタル入力の状態に応じた処理

int buttonPin = 2;
int ledPin = 13;
void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}
void loop() {
  int buttonState = digitalRead(buttonPin);
  switch (buttonState) {
    case HIGH:
      digitalWrite(ledPin, HIGH);
      break;
    case LOW:
      digitalWrite(ledPin, LOW);
      break;
  }
}

上記のコードでは、デジタルピン2に接続されたボタンの状態を読み取り、その状態に応じてデジタルピン13に接続されたLEDの点灯・消灯を制御しています。

例2: 数値に応じた処理

int sensorValue = analogRead(A0);
switch (sensorValue) {
  case 0:
    // センサー値が0の場合の処理
    break;
  case 100:
    // センサー値が100の場合の処理
    break;
  case 200:
    // センサー値が200の場合の処理
    break;
  default:
    // 上記のいずれの値にも該当しない場合の処理
    break;
}

上記のコードでは、アナログピンA0からのセンサー値を読み取り、その値に基づいて異なる処理を実行しています。

これらはいくつかの基本的な例ですが、Arduinoのプログラムでswitch case文を使用することで、複雑な条件分岐を簡潔に表現することができます。自分のプロジェクトに応じて、適切な条件と処理を組み合わせて利用してみてください。