Funciones de comunicación serial
Se utilizan para la comunicación entre la placa Arduino y un ordenador u otro dispositivo. Las placas Arduino se comunican por los pines digitales 0 (RX) y 1 (TX), así como con el ordenador mediante la conexión USB. Por lo tanto, si utiliza estas funciones, no puede usar los pines 0 y 1 para entrada o salida digital.

Se puede utilizar el monitor del puerto serie incorporado en el entorno de Arduino para comunicarse con la placa Arduino. Haga clic en el botón de monitor del puerto serie en la barra de herramientas y seleccione la misma velocidad utilizada en la llamada a Serial.begin().
Serial.begin()
Establece la velocidad de transmisión de datos en bits por segundo (baudios) para la transmisión de datos serie. Para comunicarse con el ordenador, suele utilizarse 9600 baudios. Como abre el canal serie para que pueda comenzar la comunicación, su ejecución se realiza antes de cualquier transmisión, por lo que normamente se escribe dentro de la sección void setup().
Sintaxis
Serial.begin(speed) Serial.begin(speed, config)
Ejemplo
void setup() { Serial.begin (9600); // abre el puerto serie, establece la velocidad de datos a 9600 bps } void loop() {}
Serial.end()
Desactiva la comunicación serie, permitiendo a los pines 0 (RX) y 1 (TX) ser utilizados como entradas o salidas digitales. Para volver a habilitar la comunicación en serie, se llama a Serial.begin(). La función Serial.end() no lleva ningún parámetro.
Sintaxis
Serial.end()
Serial.print()
Envía a través del canal serie un dato desde el microcontrolador hacia el exterior. Ese dato puede ser de cualquier tipo: caracter, cadena, número entero, número decimal (por defecto de dos decimales), etc.
Sintaxis
Serial.print(valor) Serial.print(valor, formato)
Parámetros
valor: es el valor a imprimir (cualquier tipo de dato)
formato: especifica la base numérica (para tipos de datos int) o el número de decimales (para tipos float)
Ejemplos
void setup() { Serial.begin(9600); } void loop() { // print labels Serial.print("NO FORMAT"); // imprime una etiqueta Serial.print("\t"); // salto de línea Serial.print("DEC"); Serial.print("\t"); Serial.print("HEX"); Serial.print("\t"); Serial.print("OCT"); Serial.print("\t"); Serial.print("BIN"); Serial.println(); // salto de línea tras la ultima etiqueta for (int x = 0; x < 64; x++) { // Diferentes formatos de impresión: Serial.print(x); // ASCII-encoded decimal - igual que "DEC" Serial.print("\t\t"); // imprime 2 tabulaciones Serial.print(x, DEC); // ASCII-encoded decimal Serial.print("\t"); // imprime 1 tabulación Serial.print(x, HEX); // ASCII-encoded hexadecimal Serial.print("\t"); // imprime 1 tabulación Serial.print(x, OCT); // ASCII-encoded octal Serial.print("\t"); // imprime 1 tabulación Serial.println(x, BIN); // ASCII-encoded binary // añade un salto de línea con "println" delay(200); // espera 200 milliseconds } Serial.println(); // añade otro salto de línea }
Serial.println()
Realiza la misma función que Serial.print(), pero además, añade automáticamente al final de los datos enviados dos caracteres extra: retorno de carro (código ASCII nº 13) y nueva línea (código ASCII nº 10).
Sintaxis
Serial.println(valor) Serial.println(val, format)
Parámetros
valor: es el valor a imprimir (cualquier tipo de dato)
formato: especifica la base numérica (para tipos de datos int) o el número de decimales (para tipos float)
serial.parseInt()
Lee del buffer de entrada todos los datos hasta que se encuentre con un número entero (eliminándolos segun los lee). El valor de retorno será entonces ese número entero. Cuando detecte el primer caracter posterior no válido, dejará de leer (y por tanto, no seguirá eliminando datos).
Sintaxis
Serial.parseInt()
Ejemplo
void loop(){ int x; if (Serial.available() > 0){ x = Serial.parseInt(); Serial.println(x) ; } }
Este código simplemente recibe en x los datos que nos tecleen en la consola, cuando pulsemos intro, y si estos son enteros los almacena en x y si es un texto, lo interpreta como cero.
Deja un comentario