Puerto serie
m (Editor trasladó la página Usuario:Editor/Manual de programación Arduino/Puerto serie a Manual de programación Arduino/Puerto serie: Publicación) |
|||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 8: | Línea 8: | ||
<code>{</code> | <code>{</code> | ||
− | <code>Serial.begin(9600); // abre el Puerto serie configurando la velocidad en 9600 bps</code> | + | <code>Serial.begin(9600); ''// abre el Puerto serie configurando la velocidad en 9600 bps''</code> |
<code>}</code> | <code>}</code> | ||
Línea 17: | Línea 17: | ||
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. | 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. | ||
− | <code>Serial.println(analogValue); // envía el valor 'analogValue' al puerto</code> | + | <code>Serial.println(analogValue); ''// envía el valor 'analogValue' al puerto''</code> |
'''Nota:''' Para obtener más información sobre las distintas posibilidades de Serial.println () y Serial.print () puede consultarse el sitio web de Arduino. | '''Nota:''' Para obtener más información sobre las distintas posibilidades de Serial.println () y Serial.print () puede consultarse el sitio web de Arduino. | ||
Línea 27: | Línea 27: | ||
<code>{</code> | <code>{</code> | ||
− | <code>Serial.begin(9600); // configura el puerto serie a 9600bps</code> | + | <code>Serial.begin(9600); ''// configura el puerto serie a 9600bps''</code> |
<code>void loop()</code> | <code>void loop()</code> | ||
Línea 33: | Línea 33: | ||
<code>{</code> | <code>{</code> | ||
− | <code>Serial.println(analogRead(0)); // envía valor analógico</code> | + | <code>Serial.println(analogRead(0)); ''// envía valor analógico''</code> |
− | <code>delay(1000); // espera 1 segundo }</code> | + | <code>delay(1000); ''// espera 1 segundo''</code> |
+ | |||
+ | <code>}</code> | ||
<code>}</code> | <code>}</code> | ||
Línea 68: | Línea 70: | ||
''Vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldría a printInteger().'' | ''Vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldría a printInteger().'' | ||
− | <code>int b = 79; Serial.print(b); // imprime la cadena "79" | + | <code>int b = 79; Serial.print(b); ''// imprime la cadena "79"''</code> |
'''Serial.print(b, DEC)''' | '''Serial.print(b, DEC)''' | ||
Línea 76: | Línea 78: | ||
<code>int b = 79;</code> | <code>int b = 79;</code> | ||
− | <code>Serial.print(b, DEC); // imprime la cadena "79" | + | <code>Serial.print(b, DEC); ''// imprime la cadena "79"''</code> |
'''Serial.print(b, HEX)''' | '''Serial.print(b, HEX)''' | ||
Línea 84: | Línea 86: | ||
<code>int b = 79;</code> | <code>int b = 79;</code> | ||
− | <code>Serial.print(b, HEX); // imprime la cadena "4F" | + | <code>Serial.print(b, HEX); ''// imprime la cadena "4F"''</code> |
'''Serial.print(b, OCT)''' | '''Serial.print(b, OCT)''' | ||
Línea 92: | Línea 94: | ||
<code>int b = 79;</code> | <code>int b = 79;</code> | ||
− | <code>Serial.print(b, OCT); // imprime la cadena "117" | + | <code>Serial.print(b, OCT); ''// imprime la cadena "117"''</code> |
'''Serial.print(b, BIN)''' | '''Serial.print(b, BIN)''' | ||
Línea 100: | Línea 102: | ||
<code>int b = 79;</code> | <code>int b = 79;</code> | ||
− | <code>Serial.print(b, BIN); // imprime la cadena "1001111" | + | <code>Serial.print(b, BIN); ''// imprime la cadena "1001111"''</code> |
'''Serial.print(b, BYTE)''' | '''Serial.print(b, BYTE)''' | ||
Línea 108: | Línea 110: | ||
<code>int b = 79;</code> | <code>int b = 79;</code> | ||
− | <code>Serial.print(b, BYTE); // Devuelve el caracter "O", el cual representa el caracter ASCII del valor 79. (Ver tabla ASCII ) | + | <code>Serial.print(b, BYTE); ''// Devuelve el caracter "O", el cual representa el caracter ASCII del valor 79. (Ver tabla ASCII)''</code> |
'''Serial.print(str)''' | '''Serial.print(str)''' | ||
Línea 114: | Línea 116: | ||
''Vuelca o envía la cadena de caracteres como una cadena ASCII. Equivaldría a printString().'' | ''Vuelca o envía la cadena de caracteres como una cadena ASCII. Equivaldría a printString().'' | ||
− | <code>Serial.print("Hello World!"); // vuelca "Hello World!" | + | <code>Serial.print("Hello World!"); ''// vuelca "Hello World!"''</code> |
== Serial.available() == | == Serial.available() == | ||
Línea 123: | Línea 125: | ||
Ejemplo | Ejemplo | ||
− | <code>int incomingByte = 0; // almacena el dato serie</code> | + | <code>int incomingByte = 0; ''// almacena el dato serie''</code> |
<code>void setup() {</code> | <code>void setup() {</code> | ||
− | <code>Serial.begin(9600); // abre el puerto serie, y le asigna la velocidad de 9600 bps</code> | + | <code>Serial.begin(9600); ''// abre el puerto serie, y le asigna la velocidad de 9600 bps''</code> |
<code>}</code> | <code>}</code> | ||
Línea 133: | Línea 135: | ||
<code>void loop() {</code> | <code>void loop() {</code> | ||
− | <code>// envía datos sólo si los recibe:</code> | + | <code>''// envía datos sólo si los recibe:''</code> |
<code>if (Serial.available() > 0) {</code> | <code>if (Serial.available() > 0) {</code> | ||
Línea 139: | Línea 141: | ||
<code>// lee el byte de entrada:</code> | <code>// lee el byte de entrada:</code> | ||
− | <code>incomingByte = Serial.read(); //lo vuelca a pantalla</code> | + | <code>incomingByte = Serial.read(); ''// lo vuelca a pantalla''</code> |
<code>Serial.print("I received: ");</code> | <code>Serial.print("I received: ");</code> | ||
Línea 156: | Línea 158: | ||
Ejemplo | Ejemplo | ||
− | <code>int incomingByte = 0; // almacenar el dato serie</code> | + | <code>int incomingByte = 0; ''// almacenar el dato serie''</code> |
− | <code>void setup() {</code> | + | <code>void setup()</code> |
+ | |||
+ | <code>{</code> | ||
− | <code>Serial.begin(9600); // abre el puerto serie,y le asigna la velocidad de 9600 bps</code> | + | <code>Serial.begin(9600); ''// abre el puerto serie,y le asigna la velocidad de 9600 bps''</code> |
<code>}</code> | <code>}</code> | ||
− | <code>void loop() {</code> | + | <code>void loop()</code> |
+ | |||
+ | <code>{</code> | ||
− | <code>// envía datos sólo si los recibe:</code> | + | <code>''// envía datos sólo si los recibe:''</code> |
− | <code>if (Serial.available() > 0) | + | <code>if (Serial.available() > 0)</code> |
− | <code>// lee el byte de entrada:</code> | + | <code>{</code> |
+ | |||
+ | <code>''// lee el byte de entrada:''</code> | ||
<code>incomingByte = Serial.read();</code> | <code>incomingByte = Serial.read();</code> | ||
− | <code>//lo vuelca a pantalla</code> | + | <code>''// lo vuelca a pantalla''</code> |
<code>Serial.print("I received: ");</code> | <code>Serial.print("I received: ");</code> | ||
Línea 183: | Línea 191: | ||
<code>}</code> | <code>}</code> | ||
− | [[Categoría:Tecnología]] | + | [[Categoría:Tecnología]][[Category:Book:Manual_de_programación_Arduino]] |
Revisión actual del 21:20 3 jul 2019
Serial.begin(rate)[editar | editar código]
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)[editar | editar código]
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)[editar | editar código]
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)[editar | editar código]
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[editar | editar código]
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()[editar | editar código]
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()[editar | editar código]
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);
}
}