Diferencia entre revisiones de «Serial.write()»
De ArduWiki
(→Advertencia) |
(→Ejemplo 1) |
||
Línea 29: | Línea 29: | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
Serial.write(65); //A | Serial.write(65); //A | ||
+ | Serial.write("65"); //65 | ||
Serial.write("Hola mundo"); //Hola mundo | Serial.write("Hola mundo"); //Hola mundo | ||
n = Serial.write("Hola mundo"); //Retorna el largo de cadena | n = Serial.write("Hola mundo"); //Retorna el largo de cadena |
Revisión del 17:23 3 jul 2018
Contenido
Descripción
Envia datos binarios al puerto serie. Esta información se envía como un byte o serie de bytes. Retorna el numero de bytes escritos.
Sintaxis
Serial.write(val); Serial.write(str); Serial.write(buf, len);
Parametros
- val
- Valor como un solo byte o variable.
- str
- Cadena como una serie de bytes.
- buf
- Matriz enviada como una serie de bytes.
- len
- Largo de la cadena
Retorno
Retorna el largo de la cadena.
Advertencia
Para enviar los caracteres que representan los dígitos de un número, use la función Serial.print() en su lugar.
Comentarios
- Todos los datos enviados a través del puerto serie se envían como 0 y 1. La diferencia entre write() y print() es cómo lo que se está enviando se interpreta.
- Otro aspecto a tener en cuenta es que write() trabaja con byte (8 bits) por eso Serial.write(65); produce lo mismo que Serial.write(321); o Serial.write(577); es decir la letra A que corresponde al ASCII 65 y 321 - 256 = 65. Recuerda 2^8 = 256.
- Es distinto usar Serial.write("65"); Serial.write("321"); y Serial.write("577"); que es exactamente igual a Serial.print(65); Serial.print(321); y Serial.print(577);.
Ejemplo 1
Serial.write(65); //A
Serial.write("65"); //65
Serial.write("Hola mundo"); //Hola mundo
n = Serial.write("Hola mundo"); //Retorna el largo de cadena
Ejemplo 2
Es importante resaltar la diferencia entre usar Serial.write() vs Serial.print() o Serial.println(), mira este ejemplo.
void setup(){
Serial.begin(9600);
Serial.write(72); //H
Serial.write(79); //O
Serial.write(76); //L
Serial.write(65); //A
Serial.print(72); //72
Serial.print(79); //79
Serial.print(76); //76
Serial.print(65); //65
}
void loop(){
//nada
}