pont-uart.ino
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
}
}