Serial.available()

Descripción

Obtiene el número de bytes (caracteres) disponibles para su lectura desde el puerto serie. Se trata de datos que ya llegaron y se almacenaron en el buffer de recepción serie (que tiene 64 bytes).

available() hereda de la clase Stream

Sintaxis

Serial.available()

Solo Arduino Mega:

Serial1.available()

Serial2.available()

Serial3.available()

Parámetros

  • Ninguno

Retornos

  • El número de bytes disponibles para leer.

Ejemplo

Ejemplo 1

int incomingByte = 0; // para la entrada de datos serie void setup() { Serial.begin(9600); // abre el puerto serie, configura los datos a 9600 bps } void loop() { // envia datos sólo cuando se reciben datos: if (Serial.available() > 0) { // lee el byte de entrada: incomingByte = Serial.read(); // di lo que tienes: 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  

Ejemplo 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 } }

Ejemplo para Arduino Mega.

void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { // lee el puerto 0, envia por el puerto 1: if (Serial.available()) { int inByte = Serial.read(); Serial1.print(inByte, BYTE); } // lee el puerto 1, envia por el puerto 0: if (Serial1.available()) { int inByte = Serial1.read(); Serial.print(inByte, BYTE); } }

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES