Diese Seite ist auch in 2 anderen Sprachen verfügbar.
Sprache wechseln  

Serial.print()

Beschreibung

Druckt Daten an den seriellen Anschluss als von Menschen lesbarer ASCII-Text. Dieser Befehl kann viele Formen annehmen. Zahlen werden für jede Ziffer mit einem ASCII-Zeichen gedruckt. Floats werden in ähnlicher Weise als ASCII-Ziffern gedruckt. Die Standardeinstellung ist zwei Dezimalstellen. Bytes werden als einzelnes Zeichen gesendet. Zeichen und Zeichenfolgen werden unverändert gesendet. Zum Beispiel:

  • Serial.print(78) gibt "78" aus

  • Serial.print(1.23456) gibt "1.23" aus

  • Serial.print('N') gibt "N" aus

  • Serial.print("Hello world.") gibt "Hello world."

Ein optionaler zweiter Parameter gibt die Basis (Format) an, die verwendet werden soll. Zulässige Werte sind BIN(Binär, oder Basis 2), OCT(Oktal, oder Basis 8), DEC(Dezimal, oder Basis 10), HEX(Hexadezimal, oder Basis 16). Bei Gleitkommazahlen gibt dieser Parameter die Anzahl der zu verwendenden Dezimalstellen an. Zum Beispiel:

  • Serial.print(78, BIN) gibt "1001110" aus

  • Serial.print(78, OCT) gibt "116" aus

  • Serial.print(78, DEC) gibt "78" aus

  • Serial.print(78, HEX) gibt "4E" aus

  • Serial.print(1.23456, 0) gibt "1" aus

  • Serial.print(1.23456, 2) gibt "1.23" aus

  • Serial.print(1.23456, 4) gibt "1.2346"

Du kannst Flash-Speicher-basierte Zeichenfolgen an Serial.print() übergeben, indem du Sie mit F() einschließt. Zum Beispiel:

Serial.print(F("Hello World"))

Um Daten ohne Umwandlung in ihre Darstellung als Zeichen zu senden, verwende Serial.write().

Syntax

Serial.print(val)
Serial.print(val, format)

Parameter

Serial: Serielles Port-Objekt. Die Liste der verfügbaren seriellen Anschlüsse für jedes Board auf der Serial-Hauptseite.
val: Der zu druckende Wert. Erlaubte Datentypen: Beliebiger Datentyp.

Rückgabewert

Gibt die Anzahl der geschriebenen Bytes zurück, das Lesen dieser Anzahl ist jedoch optional. Datentyp: size_t.

Beispielcode

/*
Verwendet eine for-Schleife, um Zahlen in verschiedenen Formaten zu drucken.
*/
void setup() {
  Serial.begin(9600); // Öffnet die serielle Schnittstelle bei 9600 Bit/s:
}

void loop() {
  // print labels
  Serial.print("NO FORMAT");  // Gibt einen Text aus
  Serial.print("\t");         // Gibt einen Tab aus

  Serial.print("DEC");
  Serial.print("\t");

  Serial.print("HEX");
  Serial.print("\t");

  Serial.print("OCT");
  Serial.print("\t");

  Serial.print("BIN");
  Serial.println();        // Carriage return nach dem letzten Text

  for (int x = 0; x < 64; x++) { // nur ein Teil des ASCII-Diagramms, ändere es entsprechend
    // Ausgabe in verschiedenen Formaten:
    Serial.print(x);       // Gibt eine ASCII-codierte Dezimalzahl aus - wie "DEC"
    Serial.print("\t\t");  // Gibt zwei Tabs aus, um die Textlänge auszugeben

    Serial.print(x, DEC);  // Ausgabe als ASCII-codierte Dezimalzahl
    Serial.print("\t");    // Gibt einen Tab aus

    Serial.print(x, HEX);  // Ausgabe als ASCII-codierte Hexadezimalzahl
    Serial.print("\t");    // Gibt einen Tab aus

    Serial.print(x, OCT);  // Ausgabe als ASCII-codierte Oktalzahl
    Serial.print("\t");    // Gibt einen Tab aus

    Serial.println(x, BIN);  // Ausgabe als ASCII-codierte Binärzahl
    // fügt dann den Carriage return mit "println" hinzu
    delay(200);            // Warte 200 Millisekunden
  }
  Serial.println();        // Gibt einen Carriage return aus
}

Anmerkungen und Warnungen

Informationen zur Asynchronität von Serial.println() findest du im Abschnitt Hinweise und Warnungen von Serial.write().

Siehe auch