Skip to main content

Primeros Pasos con la Placa de Expansión Seeed Studio XIAO-RS485

Descripción General del Hardware

material preparado

Placa de Expansión Seeed Studio XIAO RS485Seeed Studio XIAO ESP32-C3

Diagrama de Pines

Diagrama de indicación de expansión XIAO RS485
  • INTERRUPTOR 5V OUT/IN : Uno es la entrada y salida del puerto de 5V, cuando el esclavo establece el archivo IN, como entrada, cuando el host establece el archivo OUT, este puerto se descarga externamente, se puede conectar al sensor para la alimentación del sensor.

  • INTERRUPTOR 120R : El interruptor 120R se utiliza para determinar si la resistencia de 120 ohmios es accesible o no. 485 necesita agregar una resistencia de 120 ohmios al principio y al final de entornos de cableado largo para hacer la coincidencia y asegurar la comunicación.

  • INT : Puerto de interrupción reservado.

tip

Cuando se usa como modo de entrada, necesitas cambiar el interruptor a IN, y si se usa como modo de salida, necesitas cambiar el interruptor a OUT para prevenir quemaduras.

Esquema de Conexión

Conexiones de dos placas de expansión RS485

Descripción General del Software

Código del Emisor

#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 la creación de puertos serie adicionales en ESP32, típicamente utilizada para comunicación con dispositivos (como sensores o módulos).

  • HardwareSerial mySerial(1);: Define un objeto HardwareSerial llamado mySerial, usando D5 y D4 como los pines de recepción y transmisión.

  • #define enable_pin D2: Define un pin de habilitación utilizado para controlar el estado de envío y recepción del módulo RS485.

  • setup():

    • Serial.begin(115200: Inicializa el puerto serie por hardware con una velocidad de baudios de 115200.
    • mySerial.begin(115200, SERIAL_8N1, 7, 6);: RX=D4(GPIO4), TX=D5(GPIO5).
    • while(!mySerial): Espera hasta que el puerto serie por hardware esté listo para la comunicación.
    • while(!Serial): Espera hasta que el puerto serie por hardware esté listo para la comunicación.
    • pinMode(enable_pin, OUTPUT): Configura el enable_pin como un pin de salida para controlar el módulo RS485.
    • digitalWrite(enable_pin, HIGH): Establece el enable_pin en HIGH, configurando el módulo RS485 para el modo de envío.
  • loop():

    • if (receivedData.length() > 0): Verifica si hay algún dato disponible para leer desde el puerto serie por hardware.
    • String receivedData = Serial.readStringUntil('\n'); : Lee los datos del puerto serie por hardware hasta un carácter de nueva línea
    • Serial.println("Send successfully"): Imprime un mensaje de éxito.
    • mySerial.print("Master send information is: "): Envía un mensaje de aviso al puerto serie por hardware.
    • mySerial.println(receivedData) :Envía los datos que necesitas a una placa de expansión RS485.

Código del 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
}
}

  • Librería HardwareSerial: Permite la creación de puertos serie adicionales en ESP32, típicamente utilizada para comunicación con dispositivos (como sensores o módulos).

  • HardwareSerial mySerial(1);: Define un objeto HardwareSerial llamado mySerial, usando D5 como RX y D4 como TX.

  • define enable_pin D2: Define un pin de habilitación utilizado para controlar el estado de envío y recepción del módulo RS485.

  • setup():

    • Serial.begin(115200: Inicializa el puerto serie de hardware con una velocidad de baudios de 115200.
    • mySerial.begin(115200, SERIAL_8N1, 7, 6);RX=D4(GPIO4), TX=D5(GPIO5).
    • while(!Serial): Espera hasta que el puerto serie de hardware esté listo para la comunicación.
    • while(!mySerial): Espera hasta que el puerto serie de hardware esté listo para la comunicación.
    • pinMode(enable_pin, OUTPUT): Configura el enable_pin como un pin de salida para controlar el módulo RS485.
    • digitalWrite(enable_pin, LOW): Establece el enable_pin en bajo, configurando el módulo RS485 para el modo de recepción.
  • loop():

    • if (mySerial.available()): Verifica si hay algún dato disponible para leer desde el puerto serie de hardware.
    • String receivedData = mySerial.readStringUntil('\n');: Lee cadenas basándose en saltos de línea
    • Serial.print("Received data: ");: Imprime un mensaje al puerto serie de hardware indicando que se han recibido datos.
    • Serial.println(receivedData);: Imprime los datos enviados al receptor RS485.

Resultado de Transmisión RS485

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...