Arduino Função printf
- 
          
            Obtenha a mesma saída de prinf()usando as funçõessprintf()eSerial.print()juntas no Arduino
- 
          
            Obtenha a mesma saída que prinf()usando apenas a funçãoSerial.print()no Arduino
 
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.
