pont-uart.ino

Arduino Mega 2560 (Rev3) · Archivo : pont-uart.ino · Lenguaje : Arduino · Uso : Relayer deux appareils série entre eux grâce aux UART multiples

El ATmega2560 tiene cuatro UART por hardware: ideal para un GPS, un módulo GSM o un segundo microcontrolador sin sacrificar el USB. El puente copia todo entre UART1 y UART2.

Hardware necesario

Un Arduino Mega 2560 (ATmega2560, 16 MHz, 5 V): 54 E/S digitales, 15 PWM, 16 entradas analógicas, 4 UART por hardware. 2 dispositivos serie de 5 V (p. ej. GPS TTL + segundo Arduino).

Cableado

Dispositivo 1 en RX1=19/TX1=18, dispositivo 2 en RX2=17/TX2=16 (cruzar RX/TX), masas comunes.

Funcionamiento

Cada byte leído en un puerto se escribe en el otro, con copia en USB para ver el tráfico en directo. En el Arduino IDE, elija « Arduino Mega 2560 » y el puerto, y suba. PWM en 2-13 y 44-46; UART1=18/19, UART2=16/17, UART3=14/15; SPI en 50-53.

Para ir más lejos

Filtre frases NMEA del GPS (prefijo $GPGGA) en lugar de copiarlo todo, para un registrador de posición.

pont-uart.ino

// Pont serie entre Serial1 (broches 19/18) et Serial2 (17/16).
// Exemple : GPS sur UART1 -> moniteur, et module sur UART2.

void setup() {
  Serial.begin(9600);   // USB (debug)
  Serial1.begin(9600);  // UART1: RX1=19, TX1=18
  Serial2.begin(9600);  // UART2: RX2=17, TX2=16
  Serial.println(F("Pont UART1 <-> UART2 actif"));
}

void loop() {
  if (Serial1.available()) {
    char c = Serial1.read();
    Serial2.write(c);   // appareil 1 -> appareil 2
    Serial.write(c);    // copie vers le moniteur
  }
  if (Serial2.available()) {
    char c = Serial2.read();
    Serial1.write(c);   // appareil 2 -> appareil 1
  }
}

← Volver a la ficha