Arduino의 서브루틴

Ammar Ali 2023년10월12일
Arduino의 서브루틴

이 튜토리얼에서는 함수를 선언하고 Arduino의 기본 코드에서 호출하여 서브루틴 작업에 대해 설명합니다.

Arduino의 서브루틴

Arduino에서는 함수를 선언하고 메인 코드에서 호출하여 서브루틴과 함께 작동할 수 있습니다. 코드는 한 줄씩 실행되며, 한 줄에서 함수를 호출하면 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; }

위의 코드에서 Sub_1() 서브루틴이 실행된 후 전역 변수 a의 값이 변경됩니다. 작동 여부를 확인하기 위해 서브루틴 전후에 변수 값을 인쇄할 수 있습니다.

호출될 때 값을 반환하는 반환 유형으로 함수를 정의할 수도 있습니다.

데이터 유형으로 함수를 정의하려면 먼저 데이터 유형, 함수 이름 및 함수 내부에 전달하려는 매개변수를 작성해야 합니다.

예를 들어, 두 정수의 합을 구하고 결과를 정수로 반환하는 함수를 정의해 보겠습니다.

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() 함수가 특정 입력으로 호출되면 두 입력의 합을 반환합니다.

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