En este artículo exploraremos la librería de serial de arduino, veremos la documentación oficial y realizaremos algunos ejemplos para entender el funcionamiento de cada funcion que ofrece la librería
Definiciones
Comunicación asíncrona
Se refiere a un método de transmisión de datos donde no hay un reloj de sincronización compartido entre el transmisor y el receptor. En lugar de eso, se utilizan señales especiales, como bits de inicio y de parada, para delimitar los datos enviados.
Comunicación síncrona
Es un método de transmisión de datos donde tanto el transmisor como el receptor están sincronizados mediante un reloj compartido. En este tipo de comunicación, los datos se transmiten en función de una señal de reloj, lo que garantiza que tanto el transmisor como el receptor estén sincronizados en el tiempo.
UART
(Universal Asynchronous Receiver/Transmitter) es un componente de hardware que facilita la comunicación serie entre dispositivos electrónicos. Es una tecnología ampliamente utilizada para la transmisión de datos entre microcontroladores, módulos de comunicación, periféricos y otros dispositivos.
La comunicación UART implica la transmisión de datos de forma serial, lo que significa que los bits de datos se envían uno tras otro a través de un único cable de comunicación. Estos bits se transmiten en serie, lo que significa que cada bit se envía en un período de tiempo específico y en un orden predefinido.
- La comunicación es asincronía: en su lugar, se utilizan bits de inicio y parada para delimitar los bytes de datos.
USART
(Universal Synchronous/Asynchronous Receiver/Transmitter) es una versión más avanzada y versátil del UART. A diferencia del UART, que solo admite la comunicación asíncrona, el USART puede operar tanto en modo asíncrono como en modo síncrono.
Librería serial
En su sitio oficial Serial - Arduino Reference se utiliza para la comunicación entre la placa Arduino y un ordenador u otros dispositivos. Todas las placas Arduino tienen al menos un puerto serie. En la documentación oficial esta las placas de Arduino y el número de pin referente al numero serial.
El siguiente es un ejemplo básico de como usar la comunicación serial:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("hola mundo");
delay(1000);
}
Nota: en los siguientes apartados y secciones, explicaremos a detalle que hace cada función.
Funciones
if(Serial)
Indica si el puerto serie especificado está listo.
available()
Esta función devuelve el número de bytes disponibles para ser leídos del puerto serie. Se trata de datos que ya han llegado y almacenado en el búfer de recepción serie.
Serial.availableForWrite()
Obtenga el número de bytes (caracteres) disponibles para escribir en el búfer serie sin bloquear la operación de escritura.
begin(baudRate)
Esta función inicializa la comunicación serie con la velocidad de baudios especificada. Por ejemplo, Serial.begin(9600) configura la comunicación serial a una velocidad de 9600 baudios.
read()
Esta función lee el siguiente byte de datos del puerto serie y lo devuelve como un valor de tipo int.
write(data)
Esta función envía un byte de datos al puerto serie.
print(data), println(data)
Estas funciones imprimen datos en formato legible por humanos al puerto serie. Pueden utilizarse para enviar datos de diferentes tipos, como números, cadenas de texto, etc.
flush()
Esta función vacía el búfer de salida, asegurándose de que todos los datos pendientes se envíen.