Esta página também está disponível em outros 2 idiomas.

Serial.print()

Descrição

Imprime dados na porta serial em como texto ASCII (facilmente legível, diferentemente dos valores binários). Essa função pode assumir várias formas. números são impressos usando um caractere ASCII para cada dígito. Floats são similarmente impressos como dígitos ASCII, padronizados com duas casas decimais. Bytes são enviados como um único caractere. Caracteres e strings são enviados normalmente, pois já estão em formato ASCII. Por exemplo:

  • Serial.print(78) imprime "78"

  • Serial.print(1.23456) imprime "1.23"

  • Serial.print('N') imprime "N"

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

Um segundo parâmetro opcional especifíca a base (formato) a ser usada; valores permitidos são BIN(binário, ou base 2), OCT(octal, ou base 8), DEC(decimal, ou base 10), HEX(hexadecimal, ou base 16). Para números de ponto flutuante, esse parâmetro especifica o número de casas decimais a serem impressas. Por exemplo:

  • Serial.print(78, BIN) imprime "1001110"

  • Serial.print(78, OCT) imprime "116"

  • Serial.print(78, DEC) imprime "78"

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

  • Serial.print(1.23456, 0) imprime "1"

  • Serial.print(1.23456, 2) imprime "1.23"

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

Você pode passar strings armazenadas na memória flash para a função Serial.print() envolvendo as com F(). Por exemplo:

Serial.print(F(“Hello World”))

Para enviar dados, sem convertê-los para texto ASCII, use Serial.write().

Sintaxe

Serial.print(val)
Serial.print(val, formato)

Parâmetros

Serial: objeto porta serial. Veja a lista de portas seriais disponíveis em cada placa no Serial - Página principal

val: o valor a ser impresso - qualquer tipo de dados

formato: especifica a base do numeral (para tipos de dados int) ou número de casas decimais (para tipos de dados float)

Retorna

print() retorna o número de bytes escritos, porém a leitura desse número é opcional - `size_t

Código de Exemplo

O código abaixo imprime um valor na porta serial em vários formatos.

/*
  Usa um loop for para dados e imprime cada número em vários formatos.
*/
int x = 0;  // variable

void setup() {
  Serial.begin(9600); // abre a porta serial a 9600 bps:
}

void loop() {
  // imprime rótulos para cada base
  Serial.print("NUMERO"); // imprime um rótulo
  Serial.print("\t"); // imprime uma tabulação (TAB)

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

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

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

  Serial.print("BIN");
  Serial.println("\t");

  for (x = 0; x < 64; x++) {  // apenas uma parte da tabela ASCII, edite para mais ou menos valores

    // imprime cada número em vários formatos:
    Serial.print(x);       // imprime como decimal codificado em ASCII- o mesmo que "DEC"
    Serial.print("\t");    // imprime uma tabulação

    Serial.print(x, DEC);  // imprime como decimal codificado em ASCII
    Serial.print("\t");    // imprime uma tabulação

    Serial.print(x, HEX);  // imprime como hexadecimal codificado em ASCII
    Serial.print("\t");    // imprime uma tabulação

    Serial.print(x, OCT);  // imprime como octal codificado em ASCII
    Serial.print("\t");    // imprime uma tabulação

    Serial.println(x, BIN);// imprime como binário codificado em ASCII
    //então adiciona o retorno (enter) com "println"

    delay(200);             // delay de 200 milissegundos
  }
  Serial.println();         // imprime outro retorno
}

Notas e Advertências

Desde a versão 1.0 da IDE do Arduino, a trasmissão serial é assíncrona. Para mais informações sobre a assincronicidade de Serial.print(), veja a seção Notas e Advertências da página de referência da função Serial.write().

Ver Também

LINGUAGEM begin()
LINGUAGEM end()
LINGUAGEM available()
LINGUAGEM read()
LINGUAGEM peek()
LINGUAGEM flush()
LINGUAGEM println()
LINGUAGEM write()
LINGUAGEM SerialEvent()
LINGUAGEM Tutorial: Memórias (Em Inglês)