Começando com a Seeed Studio XIAO-RS485-Expansion-Board

Visão geral de hardware
Materiais preparados
| Seeed Studio XIAO RS485-Expansion-Board | Seeed Studio XIAO ESP32-C3 |
|---|---|
![]() | ![]() |
Diagrama de pinagem
| Diagrama de indicação da expansão XIAO RS485 |
|---|
![]() |
-
CHAVE 5V OUT/IN: Um é a entrada e saída da porta de 5V; quando o escravo define para IN, é usada como entrada; quando o mestre define para OUT, esta porta fornece alimentação externamente e pode ser conectada ao sensor para alimentação do sensor.
-
CHAVE 120R: A chave 120R é usada para determinar se o resistor de 120 ohms está em uso ou não. Em ambientes com cabeamento longo, o 485 precisa adicionar um resistor de 120 ohms no início e no fim para fazer o casamento de impedância e garantir a comunicação.
-
INT: Porta de interrupção reservada.
Quando for usado no modo de entrada, você precisa girar a chave para IN; se for usado no modo de saída, é necessário girar a chave para OUT para evitar queimar o módulo.
Esquemático de conexão
| Conexões de duas placas de expansão RS485 |
|---|
![]() |
Neste projeto, o XIAO ESP32C3 se comunica com a placa de expansão RS485 usando D4 (GPIO6) e D5 (GPIO7).
Se estiver usando uma placa de desenvolvimento diferente, modifique as configurações de pinos correspondentes conforme necessário.
Visão geral de software
Código do transmissor
#include <HardwareSerial.h>
HardwareSerial mySerial(1);
#define enable_pin D2 // Define the enable pin as D2
void setup() {
Serial.begin(115200); // Initialize the hardware serial with a baud rate of 115200
mySerial.begin(115200, SERIAL_8N1, 7, 6); // RX=D4(GPIO6), TX=D5(GPIO7)
// Wait for the hardware serial to be ready
while(!mySerial);
// Wait for the hardware serial to be ready
while(!Serial);
pinMode(enable_pin, OUTPUT); // Set the enable pin as an output
digitalWrite(enable_pin, HIGH); // Set the enable pin to high
}
void loop() {
if (Serial.available()) {
String receivedData = Serial.readStringUntil('\n'); // Read the data from the hardware serial until a newline character
// If the received data is not empty
if (receivedData.length() > 0) {
Serial.println("Send successfully"); // Print a success message
mySerial.print("Master send information is: "); // Send a prompt message to the hardware serial
mySerial.println(receivedData); // Send the received data to the hardware serial
}
}
}
-
Biblioteca HardwareSerial: Permite a criação de portas seriais adicionais no ESP32, normalmente usadas para comunicação com dispositivos (como sensores ou módulos).
-
HardwareSerial mySerial(1);: Define um objeto HardwareSerial chamado mySerial, usando D5 e D4 como pinos de recepção e transmissão. -
#define enable_pin D2: Define um pino de habilitação usado para controlar o estado de envio e recepção do módulo RS485. -
setup():Serial.begin(115200: Inicializa a porta serial de hardware com uma taxa de baud de 115200.mySerial.begin(115200, SERIAL_8N1, 7, 6);: RX=D4(GPIO4), TX=D5(GPIO5).while(!mySerial): Aguarda até que a serial de hardware esteja pronta para comunicação.while(!Serial): Aguarda até que a serial de hardware esteja pronta para comunicação.pinMode(enable_pin, OUTPUT): Configura o enable_pin como um pino de saída para controlar o módulo RS485.digitalWrite(enable_pin, HIGH): Define o enable_pin como HIGH, configurando o módulo RS485 para o modo de envio.
-
loop():if (receivedData.length() > 0): Verifica se há algum dado disponível para ler da porta serial de hardware.String receivedData = Serial.readStringUntil('\n');: Lê os dados da serial de hardware até um caractere de nova linhaSerial.println("Send successfully"): Imprime uma mensagem de sucesso.mySerial.print("Master send information is: "): Envia uma mensagem de aviso para a serial de hardware.mySerial.println(receivedData):Envia os dados necessários para uma placa de expansão RS485.
Código do receptor
#include <HardwareSerial.h>
HardwareSerial mySerial(1); // Use UART2
#define enable_pin D2 // Define the enable pin as D2
void setup() {
Serial.begin(115200); // Initialize the hardware serial with a baud rate of 115200
mySerial.begin(115200, SERIAL_8N1, 7, 6); // RX=D4(GPIO4), TX=D5(GPIO5)
// Wait for the hardware serial to be ready
while(!Serial);
// Wait for the hardware serial to be ready
while(!mySerial);
pinMode(enable_pin, OUTPUT); // Set the enable pin as an output
digitalWrite(enable_pin, LOW); // Set the enable pin to low
}
void loop() {
// Check if there is data available from the hardware serial
if (mySerial.available()) {
String receivedData = mySerial.readStringUntil('\n'); // Read strings based on newlines
Serial.print("Received data: ");
Serial.println(receivedData); // Direct printing of received data
}
}
-
Biblioteca HardwareSerial: Permite a criação de portas seriais adicionais no ESP32, normalmente usadas para comunicação com dispositivos (como sensores ou módulos).
-
HardwareSerial mySerial(1);: Define um objeto HardwareSerial chamado mySerial, usando D5 como RX e D4 como TX. -
define enable_pin D2: Define um pino de habilitação usado para controlar o estado de envio e recepção do módulo RS485. -
setup():Serial.begin(115200: Inicializa a porta serial de hardware com uma taxa de baud de 115200.mySerial.begin(115200, SERIAL_8N1, 7, 6);RX=D4(GPIO4), TX=D5(GPIO5).while(!Serial): Aguarda até que a porta serial de hardware esteja pronta para comunicação.while(!mySerial): Aguarda até que a porta serial de hardware esteja pronta para comunicação.pinMode(enable_pin, OUTPUT): Configura o enable_pin como um pino de saída para controlar o módulo RS485.digitalWrite(enable_pin, LOW): Define o enable_pin como LOW, configurando o módulo RS485 para o modo de recepção.
-
loop():if (mySerial.available()): Verifica se há algum dado disponível para ler da porta serial de hardware.String receivedData = mySerial.readStringUntil('\n');: Lê strings com base em quebras de linhaSerial.print("Received data: ");: Imprime uma mensagem na serial de hardware indicando que os dados foram recebidos.Serial.println(receivedData);: Imprime os dados enviados para o RS485 receptor.
Resultado da transmissão RS485

Recursos
- [SCH] Esquemático da Seeed Studio XIAO-RS485-Expansion-Board
- [PDF] Esquemático da Seeed Studio XIAO-RS485-Expansion-Board
Suporte técnico e discussão sobre o produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte e garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



