Serial.available()

Descrição

Retorna o número de bytes (caracteres) disponíveis para leitura da porta serial. Esses são dados que já chegaram e foram guardados no buffer de recebimento (o qual armazena 64 bytes).

A função Serial.available() é herdada da classe Stream.

Sintaxe

Serial.available()

Parâmetros

Retorna

O número de bytes disponíveis para leitura.

Código de Exemplo

Código de Exemplo 1

O código abaixo devolve um caractere recebido na porta serial.

int incomingByte = 0; // variável para o dado recebido void setup() { Serial.begin(9600); // abre a porta serial, configura a taxa de transferência para 9600 bps } void loop() { // apenas responde quando dados são recebidos: if (Serial.available() > 0) { // lê do buffer o dado recebido: incomingByte = Serial.read(); // responde com o dado recebido: Serial.print("I received: "); Serial.println((char)incomingByte, DEC); } }
  • Type "HELLO" on Serial Monitor and click Send button:
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • The result on Serial Monitor:
COM6
Send
I received: H I received: E I received: L I received: L I received: O I received:
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

O código abaixo transfere os dados de uma porta serial do Arduino Mega para outra. Isso pode ser usado para conectar um dispositivo serial ao computador através da placa Arduino.

Código de Exemplo 2

const int BUFFER_SIZE = 5; char buf[BUFFER_SIZE]; // application buffer void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // check if data is available int rxlen = Serial.available(); // number of bytes available in Serial buffer if (rxlen > 0) { int rlen; // number of bytes to read if (rxlen > BUFFER_SIZE) // check if the data exceeds the buffer size rlen = BUFFER_SIZE; // if yes, read BUFFER_SIZE bytes. The remaining will be read in the next time else rlen = rxlen; // read the incoming bytes: rlen = Serial.readBytes(buf, rlen); // TODO: PROCESS THE INCOMING DATA HERE } }

Exemplo para o Arduino Mega:

void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { // Lê da porta 0, envia para porta 1: if (Serial.available()) { int inByte = Serial.read(); Serial1.print(inByte, DEC); } // Lê da porta 1, envia para porta 0: if (Serial1.available()) { int inByte = Serial1.read(); Serial.print(inByte, DEC); } }

Ver também

Linguagem : begin()

Linguagem : end()

Linguagem : read()

Linguagem : peek()

Linguagem : flush()

Linguagem : print()

Linguagem : println()

Linguagem : write()

Linguagem : SerialEvent()

Linguagem : Stream.available()

※ Notas e Advertências:

Serial functions are not only used for the communication between an Arduino board and Serial Monitor of Arduino IDE but also used for the communication between:

  • An Arduino board and other Arduino board
  • An Arduino board and other sensors/devices
  • An Arduino board and computer (any Serial software on computer)* An Arduino board and other Arduino board
  • An Arduino board and other sensors/devices
  • An Arduino board and computer (any Serial software on computer)

Ver Também

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES