Arduino Função printf

Ammar Ali 12 outubro 2023
  1. Obtenha a mesma saída de prinf() usando as funções sprintf() e Serial.print() juntas no Arduino
  2. Obtenha a mesma saída que prinf() usando apenas a função Serial.print() no Arduino
Arduino Função printf

Este tutorial discutirá um método para obter o mesmo resultado que a função printf() no Arduino.

Obtenha a mesma saída de prinf() usando as funções sprintf() e Serial.print() juntas no Arduino

O Arduino não fornece a função printf(). Mas se você deseja obter uma saída como a função printf(), pode obtê-la usando as funções sprintf() e Serial.print() juntas. Primeiro, você precisa usar a função sprintf() para formatar sua saída e armazená-la em uma variável char. Em seguida, use a função Serial.print() para enviar a variável para o monitor serial.

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

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

No código acima, o buff é uma variável do tipo char para armazenar a saída formatada que você deseja mostrar no monitor serial. Observe que o uso desse método não é recomendado porque ele ocupará muito espaço de código. Em vez disso, você pode usar a função Serial.print() duas ou três vezes para obter o mesmo resultado que a função printf(). Além disso, esse método não funciona para números de ponto flutuante. Você precisa convertê-los em uma string para números de ponto flutuante, e então você pode usar este método.

Obtenha a mesma saída que prinf() usando apenas a função Serial.print() no Arduino

Se o método acima não funcionar para você, aqui está uma abordagem melhor a ser usada. Em vez de usar o método acima, você pode usar a função Serial.print() apenas para obter o mesmo resultado que a função printf(). Mas esta função não funcionará para números de ponto flutuante. Para números de ponto flutuante, você precisa convertê-los em uma string e, em seguida, pode usar esta função.

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

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

Este método também fornecerá a mesma saída do método acima, mas é melhor e fácil de usar.

Autor: 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

Artigo relacionado - Arduino Print