Arduino printf 함수

Ammar Ali 2023년10월12일
  1. Arduino에서sprintf()Serial.print()함수를 함께 사용하여prinf()와 동일한 출력 얻기
  2. Arduino에서Serial.print()함수 만 사용하여prinf()와 동일한 출력 얻기
Arduino printf 함수

이 튜토리얼에서는 Arduino의printf()함수와 동일한 결과를 얻는 방법에 대해 설명합니다.

Arduino에서sprintf()Serial.print()함수를 함께 사용하여prinf()와 동일한 출력 얻기

Arduino는printf()함수를 제공하지 않습니다. 그러나printf()함수와 같은 출력을 얻으려면sprintf()Serial.print()함수를 함께 사용하여 가져올 수 있습니다. 먼저sprintf()함수를 사용하여 출력을 형식화하고char변수에 저장해야합니다. 그런 다음Serial.print()함수를 사용하여 변수를 직렬 모니터에 출력합니다.

int time = 0;
char buff[50];
void setup() { Serial.begin(9600); }

void loop() {
  sprintf(buff, "the value is %d seconds", time++);
  Serial.println(buff);
}

위 코드에서buff는 직렬 모니터에 표시하려는 형식화 된 출력을 저장하기위한char유형의 변수입니다. 이 방법은 코드 공간을 많이 차지하므로 사용하지 않는 것이 좋습니다. 대신Serial.print()함수를 두세 번 사용하여printf()함수와 동일한 결과를 얻을 수 있습니다. 또한이 방법은 부동 소수점 숫자에 대해서는 작동하지 않습니다. 부동 소수점 숫자의 경우문자열로 변환해야하며이 방법을 사용할 수 있습니다.

Arduino에서Serial.print()함수 만 사용하여prinf()와 동일한 출력 얻기

위의 방법이 작동하지 않는 경우 사용하는 더 나은 방법이 있습니다. 위의 방법을 사용하는 대신Serial.print()함수를 사용하여printf()함수와 동일한 결과를 얻을 수 있습니다. 그러나이 함수는 부동 소수점 숫자에는 작동하지 않습니다. 부동 소수점 숫자의 경우이를 문자열로 변환 한 다음이 함수를 사용할 수 있습니다.

int time = 0;
void setup() { Serial.begin(9600); }

void loop() {
  Serial.print("the value is ");
  Serial.print(time++);
  Serial.println(" seconds");
}

이 방법은 또한 위의 방법과 동일한 출력을 제공하지만 더 좋고 사용하기 쉽습니다.

작가: 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

관련 문장 - Arduino Print