Función printf de Arduino
-
Obtenga el mismo resultado que
prinf()
usando las funcionessprintf()
ySerial.print()
juntas en Arduino -
Obtenga la misma salida que
prinf()
usando solo la funciónSerial.print()
en Arduino
Este tutorial discutirá un método para obtener el mismo resultado que la función printf()
en Arduino.
Obtenga el mismo resultado que prinf()
usando las funciones sprintf()
y Serial.print()
juntas en Arduino
Arduino no proporciona la función printf()
. Pero si desea obtener una salida como la función printf()
, puede obtenerla usando las funciones sprintf()
y Serial.print()
juntas. Primero, necesita usar la función sprintf()
para formatear su salida y almacenarla en una variable char
. Luego use la función Serial.print()
para enviar la variable al 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);
}
En el código anterior, el buff
es una variable de tipo char
para almacenar la salida formateada que desea mostrar en el monitor serial. Tenga en cuenta que no se recomienda utilizar este método porque ocupará mucho espacio de código. En su lugar, puede utilizar la función Serial.print()
dos o tres veces para obtener el mismo resultado que la función printf()
. Además, este método no funciona para números de punto flotante. Necesita convertirlos en una cadena
para números de punto flotante, y luego puede usar este método.
Obtenga la misma salida que prinf()
usando solo la función Serial.print()
en Arduino
Si el método anterior no funciona para usted, este es un método mejor para usar. En lugar de utilizar el método anterior, puede utilizar la función Serial.print()
sólo para obtener el mismo resultado que la función printf()
. Pero esta función no funcionará para números de punto flotante. Para los números de punto flotante, debe convertirlos en una cadena y luego puede usar esta función.
int time = 0;
void setup() { Serial.begin(9600); }
void loop() {
Serial.print("the value is ");
Serial.print(time++);
Serial.println(" seconds");
}
Este método también le dará el mismo resultado que el método anterior, pero es mejor y fácil de usar.