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 2560 (ATmega2560, 16 MHz, 5 V) : 54 E/S numériques, 15 PWM, 16 entrées analogiques, 4 UART matériels. 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. Dans l'Arduino IDE, choisissez « Arduino Mega 2560 » et le port, puis Téléverser. PWM sur 2-13 et 44-46 ; UART1=18/19, UART2=16/17, UART3=14/15 ; SPI sur 50-53.
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
}
}