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

Serial.write()

Descrição

Escreve dados binários na porta serial. Esses dados são enviados como um byte ou séries de bytes; para enviar os caracteres representando os dígitos de um número, use em vez disso a função print().

Sintaxe

Serial.write(val)
Serial.write(str)
Serial.write(buf, len)

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 enviado como um único byte.

str: uma string a ser enviada como uma série de bytes.

buf: um vetor a ser enviado como uma série de bytes.

Retorna

O número de bytes escritos na porta serial - size_t

write() irá retornar o número de bytes escritos, apesar de ler esse valor ser opcional

Código de Exemplo

O código abaixo usa a função Serial.write() para escrever um valor e uma string na porta serial.

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.write(45); // envia um byte com valor 45 (0b101101)

  int bytesSent = Serial.write(“hello”);  //envia a string “hello” e retorna o tamanho da string.
}

Notas e Advertências

Desde a versão 1.0 da IDE do Arduino, a trasmissão serial é assíncrona. Se há espaço livre suficiente no buffer de tranmissão, Serial.write() irá retornar antes que quaisquer caracteres sejam transmitidos pela serial. Se o buffer de transmissão estiver cheio, então Serial.write() irá bloquear o programa até que exista espaço livre suficiente no buffer de transmissão. Para evitar chamadas de Serial.write() que possam bloquear a execução, você pode checar primeiro a quantidade de espaço livre no buffer de tranmissão usando availableForWrite().