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)

Ver Também

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
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.

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.