ARDUINO: COMUNICACIÓN SERIAL



Este tema se verá la comunicación serial.

Comunicación con Arduino

  • Todos los Arduinos tienen al menos un puerto serial, UART o USART.
  • Usa los pines 0(RX) y 1(TX) y/0 el puerto USB por default.
  • Nos permite comunicarnos con el Arduino.
  • Lo podemos hacer por el conector USB.
  • Tiene un buffer de 128 bytes.

Nuestro Arduino puede funcionar conectado a una computadora o independientemente, puede comunicarse con la computadora a la que está conectado, también a través del puerto serial con otros equipos o usando alguna shield de comunicación.

Para comunicarnos con Arduino usaremos el puerto serie como ya se mencionó, Arduino ya tiene una librería para esta comunicación que se llama Serial, incorpora varias funciones pero las esenciales y que se usarán se nombran a continuación:

  • Serial.begin([baudios]); - para iniciar la comunicación, recibe un parámetro del tipo entero que será la velocidad de comunicación, todo dependerá de sus módulos, en general son 9600.
  • Serial.available(); - para saber si hay datos en el buffer que leer, si no hay datos envía un cero.
  • Serial.read(); - para leer los datos de entrada.
  • Serial.print([dato]); - para imprimir los datos.

Se debe mencionar que solo recibe datos en ASCII, la librería hace una conversión interna al tipo de dato usado, abajo se explican un poco más a fondo las funciones de la librería que se usarán.

Serial.begin([velocidad]);

  • Se usa para inicializar la comunicación.
  • Abre el puerto serie con la velocidad indicada.
  • La velocidad está dada en baudios, baudrate.
  • Ambos extremos deben usar los mismos baudios.
    • Serial.begin(9600) ;

Serial.available();

  • Para poder saber si hay datos en el buffer:
    • Devuelve el número de bytes en el buffer.
    • Envía un cero si no hay datos.
  • Podemos usarlo con un if:
    • if(Serial.available() > 0) {//ejecucion}

Serial.read();

  • Para leer los datos en el buffer:
    • Devuelve el primer byte disponible en el buffer.
    • Cero o -1 si no hay datos.
  • Podemos usarlo en una asignación:
    • dato = Serial.read();

Serial.print(dato); o Serial.println(dato);

  • Para enviar un dato:
    • Envía el dato por el serial.
    • El dato puede ser de cualquier tipo.
    • Lo envía como ASCII.

Vídeo por Misael Saenz








ArduinoErick Méndezserial