Serie arduino.Leer y serial.escribir

Serie arduino.Leer y serial.escribir
Arduino es una plataforma electrónica de creación de prototipos utilizada por principiantes, estudiantes e ingenieros para diseñar múltiples proyectos. Arduino utiliza la comunicación en serie para transmitir y recibir datos con diferentes hardware y sensores. Para ayudar a los usuarios a la comunicación en serie, la programación de Arduino tiene una lista de funciones en serie disponibles. Entre ellas dos funciones ampliamente utilizadas para transmitir y recibir datos están De serie.escribir() y De serie.leer() respectivamente. Lea esta guía para obtener un conocimiento sólido sobre estas dos funciones.

Serie arduino.leer()

En la programación de Arduino la función De serie.leer() Lee los datos seriales entrantes en el puerto serie de Arduino. Los datos se almacenan utilizando un tipo de datos INT. De serie.La función Read () lee los datos en bytes y devuelve un número negativo -1 cuando no hay datos disponibles en el puerto serie de Arduino. Los datos de lectura se almacenan en forma de bytes y 1 byte = 8 bits.

Cuando los datos se ingresan a una placa Arduino, el UART ensamblará cada uno de los 8 bits en un solo byte y almacenará que los datos bytes dentro del buffer de serie Arduino. Hasta 64 bytes de datos se pueden almacenar dentro del búfer de recepción en serie.

Sintaxis

Sintaxis utilizada en la programación de Arduino para serie.leer () es:

De serie.leer()

Parámetros

De serie: Significa el puerto de Arduino. Al menos un puerto serie está presente en todos los tableros Arduino. Consulte la hoja de datos para obtener el tablero de Arduino respectivo para obtener más información.

Valor de retorno

De serie.Las funciones de read () devuelven el primer byte de datos serie recibidos. En caso de que si no se reciben datos en la función del puerto serie se devolverá -1. El tipo de datos devuelto es En t.

Nota: Serial.read () no devolverá ningún char si los datos no están allí, simplemente devolverá -1.

Código de ejemplo

Veamos un ejemplo para una mejor comprensión:

Char inputSerialData = 0; /* Variable para almacenar datos en serie entrantes*/
setup () void
De serie.comenzar (9600); /* Comienza la comunicación en serie*/

bucle void ()
if (serial.disponible ()> 0) /* if condición para verificar los datos de serie* /
InputSerialData = Serial.leer(); /* Leer datos seriales entrantes*/
De serie.imprimir ("datos recibidos:"); /* Imprimir datos recibidos en el monitor de serie*/
De serie.println (inputSerialData);

En el código anterior primero hemos inicializado una variable para almacenar datos en serie y luego en bucle() Sección, el programa verificará los datos en serie en el puerto serie si los datos están disponibles se imprimirán en el monitor serial que se puede ver en el terminal de salida.

Producción
La salida se puede ver en el terminal de salida. Aquí hemos enviado diferentes personajes al puerto serie Arduino:

Serie arduino.escribir()

De serie.Write () La función escribe los datos binarios en el puerto serie Arduino. Los datos se transfieren en una serie de bytes. En caso de que si queremos transferir o escribir los dígitos de los números representados por caracteres, usaremos seriales.imprimir () en lugar de serial.Función Write ().

Sintaxis
La siguiente es la sintaxis seguida mientras escribe datos en serie.

La siguiente sintaxis representa cuando tenemos que Escribe un valor en serie:

De serie.escribir (val)

Cuando necesitamos enviar un cadena Se seguirá la siguiente sintaxis:

De serie.escribir (str)

Mandar número específico de bytes de una cadena A continuación se seguirán la sintaxis:

De serie.Escribir (Buf, Len)

Parámetros

La siguiente es la lista de parámetros en serie.escribir () la función toma:

De serie: Puerto serie de la Junta Arduino.

Val: Un valor que se establecerá como un solo byte.

stri: Cuando enviamos una cadena en serie como una serie de bytes.

bufón: Para enviar una matriz como una serie de bytes.

fila: Número específico de bytes enviados desde la matriz en serie.

Valor de retorno

Devuelve el número de bytes escritos y el tipo de datos devuelto es size_t.

Código de ejemplo

El siguiente ejemplo muestra el funcionamiento de la serie.escribir () función:

setup () void
De serie.comenzar (9600);

bucle void ()
De serie.escribir (45); / * 45 es el valor ASCII de char ("-") */
int data_bytes_sent = serial.escribir ("Linuxhint.com "); /*Enviar la cadena" Linuxhint.com "y return longitud de cadena*/
retraso (2000);

Aquí en este código, inicializamos la comunicación en serie para que podamos transmitir datos utilizando la comunicación en serie. Primero usando serial.Write () y ASCII Value of Carpanc Dash "-" se imprimirá cada vez. A continuación, se enviará una cadena en serie utilizando la serie.Función Write (). Se da un retraso para leer la salida fácilmente:

Producción
Cadena "Linuxhint.com ”se imprime en serie utilizando la serie.Función Write (). El monitor en serie muestra la salida.

Diferencia entre Arduino Serial.escribir () y serial.imprimir()

De serie.escribir() la función es simple y rápida. Está hecho para tratar en binario que significa un byte a la vez. Los datos escritos en binario se envían como un byte o serie de bytes.

De serie.imprimir() La función, por otro lado, es más versátil, los datos se imprimen en el monitor en serie como texto ASCII legible para humanos. Primero, los datos de entrada se convierten de ASCII a binario. También puede convertir datos en bin, hex, octubre y dec, pero tenemos que especificarlos en el segundo argumento de la función.

De serie.La función print () puede tomar muchas formas, como:

  • Los caracteres ASCII se utilizan para imprimir cada dígito de un número.
  • Flotadores impresos como dígitos ASCII, de forma predeterminada hasta dos decimales.
  • Bytes enviados en forma de caracteres individuales.
  • Los caracteres y las cuerdas se envían sin ningún cambio.

Conclusión

La junta de Arduino utiliza la comunicación en serie para transmitir y recibir datos con sus periféricos. Arduino tiene una lista de funciones en serie disponibles que ayudan a Arduino en la comunicación en serie. Entre ellos De serie.leer() y De serie.escribir() son dos funciones, serie.Read () lee datos disponibles en Serial Recibe Buffer y Serial.Write () escribe datos en el puerto serie Arduino como un solo byte o serie de bytes. Este artículo ayudará a aprender más sobre ellos.