🛠 Ajouter un deuxième port série avec SoftwareSerial (GPS sur broches 10/11)

Arduino Duemilanove — Fiche carte · intermediaire · Schéma : IMG-duemilanove-intermediaire-1-gps-softwareserial.svg — module GPS TTL alimenté en 5 V relié à l'Arduino Duemilanove sur broches 10 (RX) et 11 (TX) en croix, puce FTDI occupant déjà les broches 0/1, mention « un seul UART matériel, occupé par l'USB ».

Objectifs

La Duemilanove n'a qu'un seul UART matériel (broches 0/1) et il est déjà occupé par le pont USB-série FTDI. La page officielle le dit explicitement : « une bibliothèque SoftwareSerial permet la communication série sur n'importe quelle broche numérique ». Vous allez brancher un GPS sur les broches 10/11 et faire un pont série bidirectionnel entre le GPS et le moniteur USB — la technique qui a permis à des générations de projets GPS/GSM/MP3 de vivre sur AVR.

Matériel

Code complet

// Pont moniteur USB <-> GPS sur SoftwareSerial (RX=10, TX=11)
#include <SoftwareSerial.h>

SoftwareSerial gps(10, 11);   // RX, TX

void setup {
  Serial.begin(9600);         // USB (FTDI)
  gps.begin(4800);            // NEO-6M par defaut : 4800
  Serial.println("Pont GPS actif — attendez le fix");
}

void loop {
  if (gps.available) Serial.write(gps.read);   // GPS -> moniteur
  if (Serial.available) gps.write(Serial.read); // moniteur -> GPS
}

Vérification attendue

Le moniteur série (9600) affiche les phrases NMEA $GPGGA, $GPRMC… dès que le GPS capte (quelques minutes à froid, près d'une fenêtre). En envoyant une commande UBX ou une phrase valide depuis le moniteur, elle repart vers le GPS. La LED de statut du GPS clignote à chaque seconde.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels