Arduino Nano - RS-422

En este tutorial, exploraremos el proceso de establecer la comunicación RS-422 con un Arduino Nano. Abordaremos los siguientes pasos con detalle:

El tutorial también proporciona la instrucción tanto para Hardware Serial como para 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 RS422
1×Cables Puente
1×(Opcional) Cable RS422 a USB
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 RS422

Cuando se emplea la comunicación serial en el Arduino Nano utilizando funciones como Serial.print(), Serial.read() y Serial.write(), la transmisión de datos ocurre a través del pin TX mientras que la recepción de datos se realiza a través del pin RX. Estos pines operan a nivel TTL, lo que significa que manejan señales de alcance limitado. En consecuencia, para la comunicación serial a largas distancias, es necesario convertir la señal TTL a estándares como RS232, RS422 o RS485.

En este tutorial, exploraremos la integración de RS422 (también conocido como RS-422) con el Arduino Nano, lograda mediante la utilización de un módulo TTL a RS-422. Este módulo facilita la conversión de señales TTL a señales RS-422 y viceversa.

Diagrama de pines

El módulo RS422 a TTL tiene dos interfaces:

  • La interfaz TTL (conectada al Arduino Nano) 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 Nano
    • Pin TXD: pin de datos, debe conectarse al pin RX del Arduino Nano
  • La interfaz RS422 comprende los siguientes pines:
    • Pin A (R+): pin RX+ del módulo, conecta este pin al pin TX+ (T+ o pin Y) del otro dispositivo RS422.
    • Pin B (R-): pin RX- del módulo, conecta este pin al pin TX- (T- o pin Z) del otro dispositivo RS422.
    • Pin Y (T+): pin TX+ del módulo, conecta este pin al pin RX+ (R+ o pin A) del otro dispositivo RS422.
    • Pin Z (T-): pin TX- del módulo, conecta este pin al pin RX- (R- o pin B) del otro dispositivo RS422.
    Pinout del módulo RS-422
    image source: diyables.io

Diagrama de Cableado

  • Diagrama de cableado si se utiliza la UART de hardware
Diagrama de cableado Arduino Nano TTL a RS-422

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado si se utiliza SoftwareSerial
Diagrama de cableado de Arduino Nano RS-422 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 RS422

  • Inicializa la interfaz serie:
Serial.begin(9600);
  • Si usas SoftwareSerial, necesitas incluir la biblioteca y declarar un objeto SoftwareSerial:
#include <SoftwareSerial.h> #define RX_PIN 3 #define TX_PIN 2 // Define the SoftwareSerial objects and their pins SoftwareSerial rs422(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-rs422 */ 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-rs422 */ #include <SoftwareSerial.h> #define RX_PIN 3 #define TX_PIN 2 // define the SoftwareSerial object and their pins SoftwareSerial rs422(RX_PIN, TX_PIN); void setup() { // start communication with baud rate 9600 rs422.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs422 if (rs422.available()) { char data = rs422.read(); // read the received character rs422.print(data); // echo back to data to the sender } }

Pruebas

Puedes hacer una prueba enviando datos desde tu PC al Arduino Nano a través de RS-422 y viceversa. Para hacerlo, sigue los siguientes pasos:

  • Conecta el Arduino Nano a tu PC mediante un cable RS-422 a USB como se muestra a continuación:
Comunicación RS422 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 comunicación serie (puerto COM, velocidad en baudios, etc.)
  • Escribe algunos datos en el terminal serie para enviarlos al Arduino Nano.
  • Si tiene éxito, verás los datos de eco 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!