Arduino のサブルーチン

Ammar Ali 2023年10月12日
Arduino のサブルーチン

このチュートリアルでは、関数を宣言し、Arduino のメインコードでそれらを呼び出すことにより、サブルーチンを操作する方法について説明します。

Arduino のサブルーチン

Arduino では、関数を宣言し、それらをメインコードで呼び出して、サブルーチンを操作できます。コードは 1 行ずつ実行され、1 行で関数を呼び出すと、Arduino はその行で停止し、その関数の宣言に移動します。

関数に存在するコードを実行してから、メインコードの次の行に移動します。

例:

void setup() {}
void loop() {
  // code
  Sub_1();
  // code
}
void Sub_1() {
  // code
}

上記のコードで Sub_1() 関数行を実行すると、コンパイラは Sub_1() 関数宣言に移動してそのコードを実行します。

メインコードに戻り、次の行に移動します。リターンタイプの有無にかかわらず、関数を宣言できます。

上記のコードでは、void キーワードを使用しました。これは、関数が何も返さないことを意味しますが、関数内のグローバル変数の値を変更できます。

開始時に定義され、関数で囲まれていない変数は、グローバル変数と呼ばれます。

グローバル変数を定義し、サブルーチンを使用してその値を変更してみましょう。以下のコードを参照してください。

int a = 5;
void setup() {}
void loop() {
  // code
  Sub_1();
  // code
}
void Sub_1() { a = 10; }

上記のコードでは、グローバル変数 a の値は、サブルーチン Sub_1() の実行後に変更されます。サブルーチンの前後に変数の値を出力して、それが機能しているかどうかを確認できます。

呼び出されたときに値を返す戻り型を持つ関数を定義することもできます。

データ型を使用して関数を定義するには、最初にデータ型、関数名、および関数内に渡すパラメーターを記述する必要があります。

たとえば、2つの整数の合計を求め、その結果を整数として返す関数を定義しましょう。

void setup() {}
void loop() {
  int a = 5;
  int b = 5;
  int c;
  c = Sub_1(a, b);
  // code
}
int Sub_1(int x, int y) {
  int result = x + y;
  return result;
}

上記のコードでは、関数 Sub_1() が特定の入力で呼び出されると、2つの入力の合計が返されます。

Sub_1() 関数内で渡した変数は、Sub_1() 宣言内で使用した変数と同じではないことに注意してください。それでも、グローバルではないため、同じ変数を使用できます。

関数内で定義された変数は、その関数内でのみ使用および変更できます。return キーワードを使用して、値または変数を返すことができます。

他のデータ型を使用して、string、char、long などの関数を定義することもできます。値や変数を返したくない場合は、void キーワードを使用して関数を定義できます。

サブルーチンは、クリーンなコードを記述したり、コード内でタスクを複数回繰り返したりする場合に役立ちます。

コード内でタスクを複数回実行する場合は、コードを複数回記述する必要がありますが、関数を作成してその中にコードを配置し、メインコードでいつでも呼び出すことができます。

時間とスペースを削減し、コードをクリーンで短くします。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook