Arduino RS-485

En este tutorial, exploraremos la implementación de la comunicación RS485 con Arduino. Específicamente, cubriremos los siguientes aspectos en detalle:

El tutorial también proporciona la instrucción para tanto Hardware Serial como SoftwareSerial.

Acerca del módulo TTL a RS-485

Al utilizar la comunicación serie en Arduino a través de funciones como Serial.print(), Serial.read(), y Serial.write(), el Arduino transmite datos a través del pin TX y recibe datos a través del pin RX. Estos pines operan a nivel TTL, lo que significa que las señales que manejan tienen un alcance limitado. Por lo tanto, para la comunicación serial a distancias más largas, se hace necesario convertir la señal TTL a los estándares de señal RS232, RS485 o RS422.

En este tutorial, profundizaremos en el uso de RS-485 (también conocido como RS-485) con Arduino utilizando un módulo TTL a RS-485. Este módulo facilita la conversión de señales TTL a señales RS-485 y viceversa.

Esquema de pines

El módulo RS485 a TTL tiene dos interfaces:

  • La interfaz TTL (conectada al Arduino) incluye 4 pines
    • Pin VCC: pin de alimentación, debe conectarse a VCC (5V, o 3.3V)
    • Pin GND: pin de alimentación, debe conectarse a GND (0V)
    • Pin RXD: pin de datos, debe conectarse al pin TX del Arduino
    • Pin TXD: pin de datos, debe conectarse al pin RX del Arduino
  • La interfaz RS485 comprende los siguientes pines:
    • Pin D+ (A o TR+): Este pin facilita la comunicación de datos.
    • Pin D- (B o TR-): Este pin sirve para la transmisión de datos.
    • Pin GND: Aunque opcional, se recomienda encarecidamente incluir este pin para mitigar la interferencia de ruido, asegurando un rendimiento óptimo.
    Diagrama de pines del módulo RS-485
    image source: diyables.io

Diagrama de Cableado

  • Diagrama de cableado si se utiliza la serie de hardware
Diagrama de cableado de Arduino TTL a RS-485

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado si se utiliza software serial
Diagrama de cableado de Arduino RS-485 a TTL

This image is created using Fritzing. Click to enlarge image

Cómo programar Arduino para usar el módulo RS485

  • Inicializa la interfaz Serial:
Serial.begin(9600);
  • Si utilizas SoftwareSerial, debes incluir la librería y declarar un objeto SoftwareSerial:
#include <SoftwareSerial.h> // Define the SoftwareSerial objects and their pins SoftwareSerial rs485(6, 7); // RX: 6, TX: 7

Código de Arduino para Serial de hardware

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-rs485 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial.available()) { char data = Serial.read(); // read the received character Serial.print(data); // echo back to data to the sender } }

Código de Arduino para Software Serial

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-rs485 */ #include <SoftwareSerial.h> // define the SoftwareSerial object and their pins SoftwareSerial rs485(6, 7); // RX: 6, TX: 7 void setup() { // start communication with baud rate 9600 rs485.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs485 if (rs485.available()) { char data = rs485.read(); // read the received character rs485.print(data); // echo back to data to the sender } }

Pruebas

Puedes hacer una prueba enviando datos desde tu PC a Arduino vía RS-485 y viceversa. Para hacerlo, sigue los pasos a continuación:

  • Conecta Arduino a tu PC mediante un cable RS485 a USB como se muestra a continuación:
Comunicación entre Arduino y PC mediante RS-485
  • Instala un programa de terminal serie como Tera Term o PuTTY
  • Abre el programa de terminal serie y configura los parámetros del puerto serie (puerto COM, tasa de baudios...)
  • Escribe algunos datos desde la terminal serie para enviarlos al Arduino.
  • Si tiene éxito, verá los datos de eco en la terminal serial.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!