Arduino Nano - RS485

En esta guía, profundizaremos en la implementación de la comunicación RS-485 con el Arduino Nano. Nos centraremos en los siguientes aspectos clave:

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

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Módulo TTL a RS485
1×Cables Puente
1×(Opcional) Convertidor USB a RS485
1×(Opcional) USB to RS485 Cable
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo TTL a RS-485

Al utilizar la comunicación serie en el Arduino Nano con funciones como Serial.print(), Serial.read(), y Serial.write(), la transmisión de datos se realiza a través del pin TX, mientras que la recepción de datos tiene lugar a través del pin RX. Estos pines operan a nivel TTL, manejando señales con un alcance limitado. Por lo tanto, para la comunicación serie a distancias más largas, se vuelve necesario convertir la señal TTL a estándares como RS232, RS485 o RS422.

En este tutorial, exploraremos la integración de RS485 (también conocido como RS-485) con el Arduino Nano utilizando un módulo TTL a RS485. Este módulo facilita la conversión de señales TTL a señales RS485 y viceversa, permitiendo una comunicación robusta a largas distancias.

Disposición de pines

El módulo RS-485 a TTL tiene dos interfaces:

  • La interfaz TTL (conectada al Arduino Nano) incluye 4 pines
    • Pin VCC: pin de alimentación, necesita estar conectado a VCC (5V, o 3.3V)
    • Pin GND: pin de alimentación, necesita estar conectado a GND (0V)
    • Pin RXD: pin de datos, necesita estar conectado a un pin TX del Arduino Nano
    • Pin TXD: pin de datos, necesita estar conectado a un pin RX del Arduino Nano
  • 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.
    Pinout del módulo RS-485
    image source: diyables.io

Diagrama de Cableado

  • Diagrama de cableado si se utiliza el puerto serie de hardware
Diagrama de cableado de Arduino Nano 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 Nano RS-485 a TTL

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

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

  • Inicializa la interfaz Serial:
Serial.begin(9600);
  • Si usas SoftwareSerial, necesitas incluir la biblioteca y declarar un objeto SoftwareSerial:
#include <SoftwareSerial.h> #define RX_PIN 2 #define TX_PIN 3 // Define the SoftwareSerial objects and their pins SoftwareSerial rs485(RX_PIN, TX_PIN);

Código de Arduino Nano para Serial de hardware

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-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 Nano para Software Serial

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-rs485 */ #include <SoftwareSerial.h> #define RX_PIN 2 #define TX_PIN 3 // define the SoftwareSerial object and their pins SoftwareSerial rs485(RX_PIN, TX_PIN); 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

Puede realizar una prueba enviando datos desde su PC al Arduino Nano vía RS-485 y viceversa. Para ello, siga los pasos que se indican a continuación:

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

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!