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
Autoscroll
Clear output
9600 baud  
Newline  
- The result on Serial Monitor:
COM6
I received: H
I received: E
I received: L
I received: L
I received: O
I received:
Autoscroll
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 .
Additionally, some links direct to products from our own brand, DIYables .