HOWTO · Arduino

Arduino Função printf

Pode-se obter a mesma saída que printf() usando a função sprintf() e a função Serial.print().

Nesta página

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.