Arduino printf Funktion
-
Gleiche Ausgabe wie
prinf()
Verwenden der Funktionensprintf()
undSerial.print()
in Arduino -
Erhalten Sie die gleiche Ausgabe wie die Funktion
prinf()
, die nur die FunktionSerial.print()
in Arduino verwendet
In diesem Tutorial wird eine Methode erläutert, mit der das gleiche Ergebnis wie mit der Funktion printf()
in Arduino erzielt werden kann.
Gleiche Ausgabe wie prinf()
Verwenden der Funktionen sprintf()
und Serial.print()
in Arduino
Arduino bietet die Funktion printf()
nicht an. Wenn Sie jedoch eine Ausgabe wie die Funktion printf()
erhalten möchten, können Sie diese mit der Funktion sprintf()
und Serial.print()
zusammen abrufen. Zunächst müssen Sie die Funktion sprintf()
verwenden, um Ihre Ausgabe zu formatieren und in einer Variablen char
zu speichern. Verwenden Sie dann die Funktion Serial.print()
, um die Variable auf dem seriellen Monitor auszugeben.
int time = 0;
char buff[50];
void setup() { Serial.begin(9600); }
void loop() {
sprintf(buff, "the value is %d seconds", time++);
Serial.println(buff);
}
Im obigen Code ist der buff
eine Variable vom Typ char
, um die formatierte Ausgabe zu speichern, die Sie auf dem seriellen Monitor anzeigen möchten. Beachten Sie, dass die Verwendung dieser Methode nicht empfohlen wird, da sie viel Code-Speicherplatz beansprucht. Stattdessen können Sie die Funktion Serial.print()
zwei- oder dreimal verwenden, um das gleiche Ergebnis wie die Funktion printf()
zu erhalten. Diese Methode funktioniert auch nicht für Gleitkommazahlen. Sie müssen sie für Gleitkommazahlen in eine Zeichenkette
konvertieren, und dann können Sie diese Methode verwenden.
Erhalten Sie die gleiche Ausgabe wie die Funktion prinf()
, die nur die Funktion Serial.print()
in Arduino verwendet
Wenn die oben beschriebene Methode bei Ihnen nicht funktioniert, finden Sie hier einen besseren Ansatz. Anstatt die obige Methode zu verwenden, können Sie die Funktion Serial.print()
nur verwenden, um das gleiche Ergebnis wie die Funktion printf()
zu erhalten. Diese Funktion funktioniert jedoch nicht für Gleitkommazahlen. Für Gleitkommazahlen müssen Sie sie in eine Zeichenkette konvertieren, und dann können Sie diese Funktion verwenden.
int time = 0;
void setup() { Serial.begin(9600); }
void loop() {
Serial.print("the value is ");
Serial.print(time++);
Serial.println(" seconds");
}
Diese Methode liefert auch die gleiche Ausgabe wie die obige Methode, ist jedoch besser und einfacher zu verwenden.