Función printf de Arduino

Ammar Ali 12 octubre 2023
  1. Obtenga el mismo resultado que prinf() usando las funciones sprintf() y Serial.print() juntas en Arduino
  2. Obtenga la misma salida que prinf() usando solo la función Serial.print() en Arduino
Función printf de 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.

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

Artículo relacionado - Arduino Print