Serial.print()

Leírás

Az adatokat ember által olvasható ASCII szövegként nyomtatja ki a soros portra. Ennek a parancsnak számos formája lehet. A számok minden számjegyhez ASCII karaktert használnak. A lebegőpontos számok hasonlóképpen ASCII számjegyként kerülnek kinyomtatásra, alapértelmezés szerint két tizedesjegy pontossággal. A bájtok egyetlen karakterként kerülnek elküldésre. A karakterek és a karakterláncok úgy kerülnek elküldésre, ahogy vannak. Például:

  • Serial.print(78) nyomtatva: "78"

  • Serial.print(1.23456) nyomtatva: "1.23"

  • Serial.print('N') nyomtatva: "N"

  • Serial.print("Hello world.") nyomtatva: "Hello world."

Egy opcionális második paraméter határozza meg a használandó alapot (formátumot); a megengedett értékek BIN(bináris, vagy 2-es alapú), OCT(oktális, vagy 8-as alapú), DEC(decimális, 10-es alapú), HEX(hexadecimális, vagy 16-os alapú). Lebegőpontos számok esetén ez a paraméter határozza meg a használandó tizedesjegyek számát. Például:

  • Serial.print(78, BIN) nyomtatva: "1001110"

  • Serial.print(78, OCT) nyomtatva: "116"

  • Serial.print(78, DEC) nyomtatva: "78"

  • Serial.print(78, HEX) nyomtatva: "4E"

  • Serial.print(1.23456, 0) nyomtatva: "1"

  • Serial.print(1.23456, 2) nyomtatva: "1.23"

  • Serial.print(1.23456, 4) nyomtatva: "1.2345"

A flash-memória alapú karakterláncokat átadhatja a Serial.print()-nek, ha becsomagolja őket F()-be. Például:

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

Ha az adatokat átalakítás nélkül szeretné elküldeni karakterként való megjelenítésére, használja a Serial.write() parancsot.

Szintaxis

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

Paraméterek

Serial: soros port objektum. Tekintse meg az egyes kártyákhoz elérhető soros portok listáját a Serial főoldalon.
val: a nyomtatandó érték. Engedélyezett adattípusok: bármilyen adattípus.
format: megadja a számok alapját (egész adattípusoknál) vagy a tizedesjegyek számát (lebegőpontos típusoknál).

Visszatérési érték

A print() a megírt bájtok számát adja vissza, bár ennek a számnak a beolvasása nem kötelező. Adattípus: size_t.

Példa

/*
  A for ciklust használja a számok különféle formátumú nyomtatásához.
*/
void setup() {
  Serial.begin(9600); // a soros port megnyitása 9600 bps-sel:
}

void loop() {
  // print labels
  Serial.print("NO FORMAT");  // címke nyomtatása
  Serial.print("\t");         // tabulátor nyomtatása

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

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

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

  Serial.print("BIN");
  Serial.println();        // kocsi vissza az utolsó címke után

  for (int x = 0; x < 64; x++) { // csak egy része az ASCII-táblának, módosítsa a megfelelőt
    // több formátumban nyomtassa ki:
    Serial.print(x);       // nyomtatás ASCII-kódolású decimálisként – ugyanaz, mint a "DEC"
    Serial.print("\t\t");  // két tabulátort nyomtat a címke hosszának megfelelően

    Serial.print(x, DEC);  // ASCII-kódolású decimálisként nyomtat
    Serial.print("\t");    // tabulátor nyomtatása

    Serial.print(x, HEX);  // ASCII-kódolású hexadecimálisként nyomtat
    Serial.print("\t");    // tabulátor nyomtatása

    Serial.print(x, OCT);  // ASCII-kódolású oktálisként nyomtat
    Serial.print("\t");    // tabulátor nyomtatása

    Serial.println(x, BIN);  // ASCII-kódolású binárisként nyomtat
    // majd hozzáadja a kocsivisszát "println"-nel
    delay(200);            // 200 millisekundum várakozás
  }
  Serial.println();        // kocsi vissza nyomtatása
}

Megjegyzések és figyelmeztetések

A Serial.print() aszinkronitásáról a Serial.write() hivatkozási oldal Megjegyzések és figyelmeztetések szakaszában olvashat.

Lásd még