Fonction d'impression Arduino
-
Obtenez la même sortie que
prinf()
en utilisant les fonctionssprintf()
etSerial.print()
ensemble dans Arduino -
Obtenez la même sortie que
prinf()
en utilisant uniquement la fonctionSerial.print()
dans 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.