Serial.print(data)

Descrição

Envia dados pela porta serial.

Parâmetro

data: todos os tipos inteiros incluindo caracteres

Sintaxe

Este comando pode assumir diversas formas:

Serial.print(b) sem nenhum formato especificado, imprime b como um número decimal em uma string ASCII. Por exemplo:

int b = 79;
Serial.print(b);

imprime a string ASCII "79".

Serial.print(b, DEC) imprime b como um número decimal em uma string ASCII. Por exemplo:

int b = 79;
Serial.print(b, DEC);

imprime a string ASCII "79".

Serial.print(b, HEX) imprime b como um número hexadecimal em uma string ASCII. Por exemplo:

int b = 79;
Serial.print(b, HEX);

imprime a string string "4F".

Serial.print(b, OCT) imprime b como um número octal em uma string ASCII. Por exemplo:

int b = 79;
Serial.print(b, OCT);

imprime a string "117".

Serial.print(b, BIN) imprime b como um número binário em uma string ASCII. Por exemplo:

int b = 79;
Serial.print(b, BIN);

imprime a string "1001111".

Serial.print(b, BYTE) imprime b como um byte único. Por exemplo:

int b = 79;
Serial.print(b, BYTE);

imprime a string "O" que é o caractér ASCII representado pelo valor 79. Para mais informações veja a Tabela ASCII.

 

Serial.print(str) se str for uma string ou um array de chars imprime uma string ASCII. Por exemplo:

Serial.print("Hello World!");

imprime a string "Hello World!".

Parâmetros

b: o byte a imprimir, ou

str: a string a imprimir

Retorno

Nenum

Exemplo:

/*
Usa um bloco FOR para dados e imprime um número em vários formatos.
*/
int x = 0; // variável

void setup() {
Serial.begin(9600); // abre a porta serial e ajusta a velocidade para 9600 bps
}

void loop() {
// imprime etiquetas
Serial.print("SEM FORMATO"); // imprime uma etiqueta
Serial.print("\t"); // imprime um tab

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

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

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

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

Serial.println("BYTE");

for(x=0; x< 64; x++){ // apenas parte da tabela ASCII

// imprime em vários formatos
Serial.print(x); // imprime um ASCII decimal - o mesmo que "DEC"
Serial.print("\t"); // imprime um tab

Serial.print(x, DEC); // imprime um ASCII decimal
 Serial.print("\t"); // imprime um tab

Serial.print(x, HEX); // imprime um ASCII hexadecimal
Serial.print("\t"); // imprime um tab

Serial.print(x, OCT); // imprime um ASCII octal
Serial.print("\t"); // imprime um tab

Serial.print(x, BIN); // imprime um ASCII binario
Serial.print("\t"); // imprime um tab

Serial.println(x, BYTE); // imprime como um byte único e adciona um "cariage return"
// com o "println"
delay(200); // espera 200 millisegundos
}
Serial.println(""); // imprime outro carriage return
}

Dicas de programação e problemas conhecidos

Serial.print() não funciona com floats, portanto você precisa fazer uma conversão para um tipo inteiro, perdendo a informação dos valores fracionários. Em algumas situações é útil multiplicar um float por uma potência de 10 para preservar (ao menos em parte) a informação fracionária.

Seja cuidadoso ao fazer cálculos desntro dos parêntesis e.g.
Serial.print(x-2, DEC);
Os tipos de dados unsigned char, e byte irão gerar resultados incorretos e atuar como se fossem do tipo de dado assinalado.

A função Serial.print envia os dados para um buffer. Ele esperará que um caractere seja enviado antes de seguir para o próximo. Entretanto a função envia o retorno antes de enviar o último caractere.

 

Veja também:

 

Página de início da referência

Correções, sugestões, e nova documentação devem ser enviadas ao Forum.

O texto de referência do Arduino está baixo uma Licença Creative Commons Attribution-ShareAlike 3.0. Amostras de código utilizadas na referência foram deixados  ao domínio público.

 

O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.

Esta obra está sob uma Licença Creative Commons.

Creative Commons License