X

Al usar esta página web, aceptas nuestro uso de cookies. Usamos cookies para ofrecerte una mejor experiencia y para ayudar a que tu página funcione de manera efectiva.

MecatrónicaLATAM

ARDUINO COMUNICACIÓN SERIAL

CONCEPTOS BÁSICOS DE LA COMUNICACIÓN SERIAL CON ARDUINO

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.

  • 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.
  • Se puede hacer por el conector USB.
  • Tiene un buffer de 128 bytes.

Para comunicarnos con Arduino usaremos el puerto serie, 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.

Serial.begin([velocidad]);

  • Se usa para inicializar la comunicación.
  • Abre el puerto serie con la velocidad indicada.
  • La velocidad está dada en baudios.
  • Ambos extremos deben usar los mismos baudios.

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.
  • Es posible usar 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.
  • Se puede usar 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.

ARDUINO: RECIBIR DATOS POR EL PUERTO SERIE

En esta práctica se ensaña como usar el puerto serie pasa recibir datos.

MATERIAL
  • 1x Arduino.

Código

En el código se inicializa el serial a 9600 baudios. Ahora lo interesante está en el loop, usamos una sentencia de control if dentro del if, ponemos la condición Serial.available() > 0, esto nos quiere decir que si se envían datos o hay datos en el serial entra en la condición del if y se ejecuta la sentencia que está dentro, de lo contrario no hace nada, después creamos una variable del tipo char llamada dato, recordemos que el serial solo recibe char y hace el casteo interno, en esta variable llamada dato se almacenarán los valores correspondiente al buffer usando Serial.read(), después se imprimen con la sintaxis Serial.print, empleando el monitor serial podemos introducir los datos y verlos cuando se imprimen.

  • void setup()
  • {
    • Serial.begin(9600);
    }
  • void loop()
  • {
    • if(Serial.available() > 0)
      {
      • char dato = Serial.read();
      • Serial.print("Recibi un: ");
      • Serial.println(dato);
      }
    }