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:

int incomingByte = 0;   // para los datos de entrada Aerie

void setup() {
        Serial.begin(9600);     // abre el puerto Serie, configura los datos a 9600 bps
}

void loop() {

        // finaliza solo cuando se reciben los datos:
        if (Serial.available() > 0) {
                // lee el byte de entrada:
                incomingByte = Serial.read();

                // di lo que tienes:
                Serial.print("Recibido: ");
                Serial.println(incomingByte, DEC);
        }
}

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); 
  }



}

6 comentarios:

  1. muchas gracias Señor Manuel, la verdad me ayuda mucho su blog esta repleto de ayuda para entender mejor el potencial de Arduino

    ResponderEliminar
  2. Muchas gracias Manuel, por compartir conocimientos, un cordial saludo desde Mar del Plata, Argentina.

    ResponderEliminar
  3. Muchas gracias ayuda mucho para mis conocimientos de Arduino.

    ResponderEliminar
  4. Hola, tengo una duda.
    He visto algunos tutoriales y en algunos casos muestran esta instrucción:
    if (bluetooth.available() > 0 )

    y luego aparece otra instruccion pero:

    if (bluetooth.available() > 2 )

    Qué pasa con el valor de mayor que???

    Gracias por la ayuda

    ResponderEliminar
  5. Mi maestro nos pregunta por ir carácter serial.read pero lee el código y el profesor nos dice que tiene otra función ayuda

    ResponderEliminar
  6. HOLA ! SOY NUEVO EN PROGRAMACIÓN ARDUINO Y ESTOY COMUNICANDO MÓDULOS XBEE CON UN ARDUINO (QUE TAMBÍEN ESTÁ CONECTADO A UN XBEE), MI DUDA RADICA EN EL CÓDIGO DE PROGRAMACIÓN EN LA COMUNICACIÓN DE DATOS SERIAL... NO LOGRO ENTENDER PORQUE INICIALIZA EL Serial.available() e EN >= 21...? ADJUNTO EL LOOP...
    void loop() {

    if (Serial.available() >= 21) {

    if (Serial.read() == 0x7E) {
    for (int i = 1; i<9; i++) {
    byte discard = Serial.read();

    se sabe que 0*7E es la inicialización de comunicación de XBEE pero porque el serial available >=21

    ResponderEliminar