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

Arduino Duemilanove — Ficha de placa · 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 ».

Objetivos

La Duemilanove solo tiene un UART de hardware (pines 0/1) y ya está ocupado por el puente USB-serial FTDI. La página oficial lo dice explícitamente: «una biblioteca SoftwareSerial permite la comunicación serie en cualquier pin digital». Vas a conectar un GPS a los pines 10/11 y a hacer un puente serie bidireccional entre el GPS y el monitor USB — la técnica que ha permitido a generaciones de proyectos GPS/GSM/MP3 funcionar en AVR.

Material

Código completo

// 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
}

Verificación esperada

El monitor serie (9600) muestra las frases NMEA $GPGGA, $GPRMC… en cuanto el GPS capta señal (unos minutos en frío, cerca de una ventana). Al enviar un comando UBX o una frase válida desde el monitor, este se reenvía al GPS. El LED de estado del GPS parpadea cada segundo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales