Con la comunicación en serie en el Arduino, es posible establecer comunicación con el microcontrolador a través de puertos USB, dispositivos bluetooth, entre otros, simplemente sabiendo cómo programar y configurar los puertos de comunicación en serie de Arduino, así como recibir y ver los datos de la comunicación.
Por lo tanto, el propósito de este artículo es mostrar qué es la comunicación en serie, cómo funciona, cuáles son sus aplicaciones y los códigos para programar la comunicación en serie de Arduino.
Indice
¿Qué es la comunicación serial Arduino?
LA Comunicación serial on Arduino es un recurso utilizado para comunicarse entre Arduino y una computadora, un módulo o incluso otro Arduino.
Cada Arduino tiene los puertos TX – Transmisor y RX – Receptor, ya que son los puertos digitales utilizados para realizar la comunicación en serie.
Esta comunicación en serie en el Arduino es un Duplex completo, Como se utilizan dos cables, uno para enviar y otro para recibir datos, simultáneamente.
Por lo tanto, el puerto RX se usa para recibir datos y el puerto TX se usa para enviar datos. Vea en la imagen a continuación cómo funciona esto:
Sin embargo, los casos donde solo hay un cable para enviar y recibir se llaman Medio duplex, pero este no es el caso de Arduino.
Estos puertos funcionan con una señal TTL de 5v, por lo que para comunicarse con un dispositivo que funcione con un voltaje diferente, necesitará un convertidor de nivel.
Terminal para comunicación serial
Junto con el IDE Arduino, es el Terminal serie o Monitor en serie. Servirá para enviar y recibir datos de Arduino, sin la necesidad de otra aplicación.
Aplicaciones de comunicación serial en Arduino
Entre las principales aplicaciones de la serie están:
- Comunique dos Arduino entre sí, cuando desee, por ejemplo, un Arduino que realice una función, y así conéctelo a otro Arduino que realice otra función al mismo tiempo.
- Comunique Arduino con la PC y, además de la Terminal serie, tenga acceso a las aplicaciones que se ejecutan en la PC, limitado a un proceso a la vez.
- Conecte los módulos, como un módulo Bluetooth, y luego puede realizar la comunicación en serie a través de dos dispositivos conectados a través de Bluetooth.
Funciones para la comunicación serial Arduino
Para configurar los puertos serie Arduino para enviar y recibir señales, es necesario programar el microcontrolador y, por lo tanto, utilizar las funciones adecuadas para la comunicación en serie.
Serial.begin ();
La primera función que vamos a usar es la Serial.begin (), que es configurar cuántos bits por segundo se transmitirán a través de serie, además de tener un segundo parámetro opcional, para definir cuántos bits transmitirá la comunicación en serie.
Por lo tanto, la sintaxis de la función es la siguiente:
Serial.begin ( velocidade );
Serial.begin ( velocidade, configuração );
- Velocidad: Define con cuántos bits por segundo funcionará la comunicación en serie, y el límite depende del hardware que se utilice. Según el sitio web de Arduino, 57600 es el valor recomendado para usar. Por lo tanto, el uso normal cuando se comunica el Arduino con la computadora es 9600.
- Configuración: Es opcional, se utiliza para definir el número de paridad y bits de parada.
Esta función no devuelve ningún valor.
Serial.print ();
Serial.print ( valor , formato );
- Valor: cualquier tipo de datos a enviar
- Formato: base numérica, ya sea binaria, hexadecimal o decimal.
Esta función se usará para escribir valores en ASCII. Entonces, comencemos por tener números impresos en la pantalla:
Serial.print ( 55 );
En esta función, el valor 55 se imprimirá en la pantalla. Por lo tanto, para las letras, debemos seguir un patrón: los caracteres deben enviarse con comillas y las cadenas con comillas dobles. Vea:
Serial.print ( ' A ' );
Serial.print ( "Athos Electronics " );
Si desea que el número que envió se escriba en binario, hexadecimal o decimal, utilizará el segundo parámetro opcional. Por lo tanto, se completa de la siguiente manera:
- COMPARTIMIENTO – binario;
- DIC – decimal;
- MALEFICIO – Hexadecimal.
Funciona de la siguiente manera:
Serial.print ( 68 );
Enviará 1000100.
tamaño_t (largo); – Esta función devolverá el número de bits escritos.
Para dar un salto de línea en la función de impresión, simplemente agregue un ln al final, entonces Serial.println ();.
Serial.write ();
Se usa para escribir un byte en el puerto serie, que luego puede ser leído por otro dispositivo.
Serial.write ( valor );
- Valor: Puede ser un solo byte, una cadena o incluso una matriz.
(byte): esta función devolverá el número de bytes escritos.
Serial.read ();
Lee datos del puerto serie
Serial.read ( );
De esta manera, no será necesario poner ningún parámetro en esta función.
(int): devuelve el primer byte disponible en la serie, si no tiene -1.
Serial.available ();
Obtenga números de bytes que están disponibles para leer.
Serial.available ();
Del mismo modo, no tiene parámetros.
Devuelve (int): es decir, por lo tanto, el número de bytes disponibles para leer.