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

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.