Puerto serie

De CNB
< Manual de programación Arduino
Revisión del 21:20 3 jul 2019 de Editor (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda
Busca en cnbGuatemala con Google


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.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.println () y Serial.print () puede consultarse el sitio web de Arduino.

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

void setup()

{

Serial.begin(9600); // configura el puerto serie a 9600bps

void loop()

{

Serial.println(analogRead(0)); // envía valor analógico

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, or '\r')y un caracter de salto de línea "LF"(ASCII 10, or '\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 byteseguido 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() sólo vuelca o envía "CR" y "LF". Equivaldría a printNewline().

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 vuelca 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); // Devuelve el caracter "O", el cual representa el caracter ASCII del valor 79. (Ver tabla ASCII)

Serial.print(str)

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

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

Serial.available()

int Serial.available() 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().

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.

Ejemplo

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) {

// lee el byte de entrada:

incomingByte = Serial.read(); // lo vuelca a pantalla

Serial.print("I received: ");

Serial.println(incomingByte, DEC);

}

}

Serial.Read()

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

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

Ejemplo

int incomingByte = 0; // almacenar 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)

{

// lee el byte de entrada:

incomingByte = Serial.read();

// lo vuelca a pantalla

Serial.print("I received: ");

Serial.println(incomingByte, DEC);

}

}