Arduino printf 함수
Ammar Ali
2023년10월12일
-
Arduino에서
sprintf()
및Serial.print()
함수를 함께 사용하여prinf()
와 동일한 출력 얻기 -
Arduino에서
Serial.print()
함수 만 사용하여prinf()
와 동일한 출력 얻기
이 튜토리얼에서는 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