Diferencia entre revisiones de «Serial.write()»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo 1)
Línea 1: Línea 1:
 
== Descripción ==
 
== 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.
+
Envia datos binarios ("crudos") al puerto serie. Esta información se envía como un byte o serie de bytes.
  
 
== Sintaxis ==
 
== Sintaxis ==
Línea 10: Línea 10:
  
 
== Parametros ==
 
== Parametros ==
;val: Valor como un solo byte o variable.
+
;val: Valor como un solo [[byte]] o variable (el byte menos signficativo en caso de ser más grande).
;str: Cadena como una serie de bytes.
+
;str: Cadena como una serie de bytes ([[string]]).
;buf: Matriz enviada como una serie de bytes.
+
;buf: Matriz enviada como una serie de bytes ([[byte]]*).
;len: Largo de la cadena
+
;len: Largo de la cadena ([[int]]).
  
 
== Retorno ==
 
== Retorno ==
Retorna el largo de la cadena.
+
La cantidad real de bytes que se enviaron con éxito ([[int]]).
  
 
== Advertencia ==
 
== Advertencia ==

Revisión del 21:03 7 jul 2018

Descripción

Envia datos binarios ("crudos") al puerto serie. Esta información se envía como un byte o serie de bytes.

Sintaxis

Serial.write(val);
Serial.write(str);
Serial.write(buf, len); 

Parametros

val
Valor como un solo byte o variable (el byte menos signficativo en caso de ser más grande).
str
Cadena como una serie de bytes (string).
buf
Matriz enviada como una serie de bytes (byte*).
len
Largo de la cadena (int).

Retorno

La cantidad real de bytes que se enviaron con éxito (int).

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
}

Vea también

Referencias