pont-uart.ino
L'ATmega2560 dispose de quatre UART matériels : idéal pour dialoguer avec un GPS, un module GSM ou un second microcontrôleur sans sacrifier le port USB. Le pont recopie tout entre UART1 et UART2.
Matériel requis
Une Arduino Mega ADK Rev3 (ATmega2560 + puce hôte USB MAX3421E avec port USB-A, broche D7 réservée au reset du MAX3421E). 2 appareils série 5 V (ex. GPS TTL + second Arduino).
Branchement
Appareil 1 sur RX1=19/TX1=18, appareil 2 sur RX2=17/TX2=16 (croiser RX/TX), masses communes.
Fonctionnement
Chaque octet lu sur un port est écrit sur l'autre, avec copie sur l'USB pour observer les échanges en direct. Carte « Arduino Mega ADK » dans l'IDE. Pour l'hôte USB/ADK, installez la bibliothèque USB Host Shield 2.0 ; ne pas utiliser D7. Le port USB-A alimente l'accessoire en 5 V.
Pour aller plus loin
Filtrez les trames NMEA du GPS (préfixe $GPGGA) au lieu de tout recopier, pour un traceur de position.
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
}
}