multi-serie.ino
Le grand gain du Nano Every sur le classique : quatre UART matériels. Ce pont recopie Serial1 (broches D0/D1) vers le port USB, pratique pour écouter un GPS ou un module voix tout en gardant le moniteur série libre pour le debug.
Matériel requis
Un Arduino Nano Every (ATmega4809 à 20 MHz, brochage identique au Nano, USB micro-B, convertisseur UART séparé, broches 5 V, pile de compatibilité avec le Nano classique). Nano Every, appareil série 3,3/5 V sur D0/D1 (GPS, capteur série), câble USB.
Câblage
TX du module→D0 (RX carte), RX du module→D1, masse commune ; le 4809 est en logique 5 V tolérante 3,3 V.
Fonctionnement
Chaque SerialX pilote un vrai émetteur-récepteur du 4809 : aucun bit-banging. Les boucles available/read non bloquantes font le pont dans les deux sens à 9600 bauds.
Exécution
Installez le package Arduino megaAVR Boards dans l'IDE, sélectionnez Arduino Nano Every, téléversez. Le Serial USB est séparé du Serial1 matériel (broches RX/TX) : le code série classique fonctionne tel quel.
Variantes
Affectez Serial2/Serial3 (broches E1RX/E1TX) à un second appareil pour un concentrateur 3 voies, ou montez le débit pour un module WiFi série.
multi-serie.ino
// Le Nano Every (ATmega4809) possede 4 Uarts materiels.
// Serial = USB (vers le PC), Serial1 = broches D0/D1, etc.
void setup() {
Serial.begin(9600); // pont USB du board
Serial1.begin(9600); // D0=RX D1=TX : GPS, module voix...
Serial2.begin(9600); // broches dediees (voir schema) : E1RX/E1TX
Serial.println(F("Serial USB pret"));
Serial1.println(F("Hello sur D0/D1"));
}
void loop() {
// Pont serie : ce qui arrive sur Serial1 part sur l'USB
while (Serial1.available()) {
char c = Serial1.read();
Serial.write(c);
// boucle de dialogue simple sur l'uart annexe
if (c == 'H') Serial1.println(F("OK depuis le Nano Every"));
}
// Et inversement : les commandes tapees sur l'USB partent sur D0/D1
while (Serial.available()) {
Serial1.write(Serial.read());
}
}