Arduino Nano - RS485

Neste guia, vamos nos aprofundar na implementação da comunicação RS485 com o Arduino Nano. Vamos focar nos seguintes aspectos principais:

O tutorial também fornece as instruções tanto para o Serial de hardware quanto para o SoftwareSerial.

Sobre o Módulo TTL para RS485

Ao usar a comunicação serial no Arduino Nano com funções como Serial.print(), Serial.read() e Serial.write(), a transmissão de dados ocorre pelo pino TX, enquanto a recepção de dados acontece pelo pino RX. Esses pinos operam em nível TTL, lidando com sinais de alcance limitado. Por isso, para comunicação serial a distâncias maiores, é necessário converter o sinal TTL para padrões como RS232, RS485 ou RS422.

Neste tutorial, vamos explorar a integração do RS485 (também chamado de RS-485) com o Arduino Nano usando um módulo TTL para RS485. Esse módulo facilita a conversão de sinais TTL em sinais RS485 e vice-versa, permitindo uma comunicação robusta em longas distâncias.

Pinagem

O módulo RS485 para TTL tem duas interfaces:

  • A interface TTL (conectada ao Arduino Nano) inclui 4 pinos
    • Pino VCC: pino de alimentação, deve ser conectado ao VCC (5V ou 3,3V)
    • Pino GND: pino de alimentação, deve ser conectado ao GND (0V)
    • Pino RXD: pino de dados, deve ser conectado a um pino TX do Arduino Nano
    • Pino TXD: pino de dados, deve ser conectado a um pino RX do Arduino Nano
  • A interface RS485 é composta pelos seguintes pinos:
    • Pino D+ (A ou TR+): Este pino facilita a comunicação de dados.
    • Pino D- (B ou TR-): Este pino serve para a transmissão de dados.
    • Pino GND: Embora opcional, é fortemente recomendado incluir este pino para reduzir a interferência de ruído, garantindo o desempenho ideal.
    RS-485 module Pinout
    image source: diyables.io

Diagrama de Ligação

  • Diagrama de ligação se usar a serial de hardware
The wiring diagram between Arduino Nano and TTL to RS485

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação se usar a serial por software
The wiring diagram between Arduino Nano and RS-485 to TTL

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como Programar o Arduino Nano para Usar o Módulo RS485

  • Inicializa a interface Serial:
Serial.begin(9600);
  • Se você usar SoftwareSerial, precisa incluir a biblioteca e declarar um 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 Arduino Nano para Serial de Hardware

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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 Arduino Nano para Serial por Software

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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 } }

Testando

Você pode fazer um teste enviando dados do seu PC para o Arduino Nano via RS-485 e vice-versa. Para isso, siga os passos abaixo:

  • Conecte o Arduino Nano ao seu PC por meio de um cabo RS485 para USB, como abaixo:
Arduino Nano RS485 to PC communication
  • Instale um programa de terminal serial como o Tera Term ou o PuTTY
  • Abra o programa de terminal serial e configure os parâmetros da Serial (porta COM, baurate...)
  • Digite alguns dados no terminal serial para enviá-los ao Arduino Nano.
  • Se tudo der certo, você verá os dados de eco no terminal serial.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!