Fonction d'impression Arduino

Ammar Ali 12 octobre 2023
  1. Obtenez la même sortie que prinf() en utilisant les fonctions sprintf() et Serial.print() ensemble dans Arduino
  2. Obtenez la même sortie que prinf() en utilisant uniquement la fonction Serial.print() dans Arduino
Fonction d'impression Arduino

Ce tutoriel abordera une méthode pour obtenir le même résultat que la fonction printf() dans Arduino.

Obtenez la même sortie que prinf() en utilisant les fonctions sprintf() et Serial.print() ensemble dans Arduino

Arduino ne fournit pas la fonction printf(). Mais si vous voulez obtenir une sortie comme la fonction printf(), vous pouvez l’obtenir en utilisant les fonctions sprintf() et Serial.print() ensemble. Tout d’abord, vous devez utiliser la fonction sprintf() pour formater votre sortie et la stocker dans une variable char. Utilisez ensuite la fonction Serial.print() pour sortir la variable sur le moniteur série.

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

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

Dans le code ci-dessus, le buff est une variable de type char pour stocker la sortie formatée que vous souhaitez afficher sur le moniteur série. Notez que cette méthode n’est pas encouragée à utiliser car elle prendra beaucoup d’espace de code. A la place, vous pouvez utiliser la fonction Serial.print() deux ou trois fois pour obtenir le même résultat que la fonction printf(). En outre, cette méthode ne fonctionne pas pour les nombres à virgule flottante. Vous devez les convertir en chaîne pour les nombres à virgule flottante, puis vous pouvez utiliser cette méthode.

Obtenez la même sortie que prinf() en utilisant uniquement la fonction Serial.print() dans Arduino

Si la méthode ci-dessus ne fonctionne pas pour vous, voici une meilleure approche à utiliser. Au lieu d’utiliser la méthode ci-dessus, vous pouvez utiliser la fonction Serial.print() uniquement pour obtenir le même résultat que la fonction printf(). Mais cette fonction ne fonctionnera pas pour les nombres à virgule flottante. Pour les nombres à virgule flottante, vous devez les convertir en une chaîne, puis vous pouvez utiliser cette fonction.

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

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

Cette méthode vous donnera également le même résultat que la méthode ci-dessus, mais elle est meilleure et facile à utiliser.

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

Article connexe - Arduino Print