Puerto Serie

Serial.begin(rate)

Abre el puerto serie y fija la velocidad en baudios para la transmisión de datos en serie. El valor típico de velocidad para comunicarse con el ordenador es 9600, aunque otras velocidades pueden ser soportadas.

void setup()
{
 Serial.begin(9600); // Abre el Puerto serie configurando la velocidad en 9600 bps
}

Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no puede utilizarse al mismo tiempo.

Serial.print(data, data type)

Vuelca o envía un número o una cadena de carateres, al puerto serie. Dicho comando puede tomar diferentes formas, dependiendo de los parámetros que utilicemos para definir el formato de volcado de los números.

Parámetros

data: El número o la cadena de caracteres a volcar o enviar.

data type: Determina el formato de salida de los valores numéricos (decimal, octal, binario, etc...) DEC, OCT, BIN, HEX, BYTE , si no se pone nada, devuelve ASCII.

Ejemplos

Serial.print(b)

 Vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldría a printInteger().

int b = 79;
Serial.print(b); // Imprime la cadena "79"


Serial.print(b, DEC)

 Vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldría a printInteger().

int b = 79;
Serial.print(b, DEC); // Imprime la cadena "79"


Serial.print(b, HEX)

 Vuelca o envía el valor de b como un número hexdecimal en caracteres ASCII. Equivaldría a printHex().

int b = 79;
Serial.print(b, HEX); // Imprime la cadena "4F"


Serial.print(b, OCT)

 Vuelca o envía el valor de b como un número octal en caracteres ASCII. Equivaldría a printOctal().

int b = 79;
Serial.print(b, OCT); // Imprime la cadena "117"


Serial.print(b, BIN)

 Vuelca o envía el valor de b como un número binario en caracteres ASCII. Equivaldría a printBinary().

int b = 79;
Serial.print(b, BIN); // Imprime la cadena "1001111"


Serial.print(b, BYTE)

 Vuelca o envía el valor de b como un byte. Equivaldría a printByte().

int b = 79;
Serial.print(b, BYTE); // Imprime el carácter "O", el cual representa           // el carácter ASCII del valor 79


Serial.print(str)

 Vuelca o envía la cadena de caracteres como una cadena ASCII. Equivaldría a printString().

Serial.print("Hello World!"); // Imprime "Hello World!"

Serial.println(data)

Imprime los datos en el puerto serie, seguido por un retorno de carro automático y salto de línea. Este comando toma la misma forma que Serial.print(), pero es más fácil para la lectura de los datos en el Monitor Serie del software.

Serial.println(analogValue); // Envía el valor 'analogValue' al puerto

Nota: Para obtener más información sobre las distintas posibilidades de Serial.print() y Serial.println() puedes consultar el sitio web de Arduino.

El siguiente ejemplo toma de una lectura analógica pin0 y envía estos datos al ordenador cada segundo.

void setup()
{
 Serial.begin(9600); // Configura el puerto serie a 9600 bps
}

void loop()
{
 Serial.println(analogRead(0)); // Envía el valor de la lectura analógica
 delay(1000); // Espera 1 segundo
}

Serial.printnl(data, data type)

Vuelca o envía un número o una cadena de carateres al puerto serie, seguido de un caracter de retorno de carro "CR" (ASCII 13, o '\r') y un caracter de salto de línea "LF" (ASCII 10, o '\n'). Toma la misma forma que el comando Serial.print()

Serial.println(b)

 Vuelca o envía el valor de b como un número decimal en caracteres ASCII seguido de "CR" y "LF".


Serial.println(b, DEC)

 Vuelca o envía el valor de b como un número decimal en caracteres ASCII seguido de "CR" y "LF".


Serial.println(b, HEX)

 Vuelca o envía el valor de b como un número hexdecimal en caracteres ASCII seguido de "CR" y "LF".


Serial.println(b, OCT)

 Vuelca o envía el valor de b como un número octal en caracteres ASCII seguido de "CR" y "LF".


Serial.println(b, BIN)

 Vuelca o envía el valor de b como un número binario en caracteres ASCII seguido de "CR" y "LF".


Serial.print(b, BYTE)

 Vuelca o envía el valor de b como un byte seguido de "CR" y "LF".


Serial.println(str)

 Vuelca o envía la cadena de caracteres como una cadena ASCII seguido de "CR" y "LF".


Serial.println()

 Solo vuelca o envía "CR" y "LF". Equivaldría a printNewline().

Serial.avaible()

Obtiene un número entero con el número de bytes (caracteres) diponibles para leer o capturar desde el puerto serie. Equivaldría a la función serialAvailable().

int Serial.available()


Devuelve un entero con el número de bytes disponibles para leer desde el buffer serie, o 0 si no hay ninguno. Si hay algún dato disponible, SerialAvailable() será mayor que 0. El buffer serie puede almacenar como máximo 64 bytes.

int incomingByte = 0; // Almacena el dato serie

void setup()
{
 Serial.begin(9600); // Abre el puerto serie, y le asigna la velocidad de 9600 bps
}

void loop()
{
 // Envía datos sólo si los recibe
 if (Serial.available() > 0)
 {
  incomingByte = Serial.read(); // Lee el byte de entrada
  // Lo vuelca a pantalla
  Serial.print("Se ha recibido: ");
  Serial.println(incomingByte, DEC);
 }
}

Serial.Read()

Lee o captura un byte (un caracter) desde el puerto serie. Equivaldría a la función serialRead().

int Serial.Read()

Devuelve el siguiente byte (carácter) desde el puerto serie, o -1 si no hay ninguno.

int incomingByte = 0; // Almacena el dato serie

void setup()
{
 Serial.begin(9600); // Abre el puerto serie, y le asigna la velocidad de 9600 bps
}

void loop()
{
 // Envía datos sólo si los recibe
 if (Serial.available() > 0)
 {
  incomingByte = Serial.read(); // Lee el byte de entrada
  // Lo vuelca a pantalla
  Serial.print("Se ha recibido: ");
  Serial.println(incomingByte, DEC);
 }
}



Volver al índice

Fun Tech Academy - Calle Alcobendas, 23 Leganés 28914 Madrid - www.funtech.academy