Arduino Mega mit NEO‑6M GPS-Modul verbinden: Schritt-für-Schritt-Anleitung
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino Mega 2560 | 1 |
| u-blox NEO-6M GPS-Modul (mit Antenne, ohne Header) | 1 |
Software
- Arduino IDE
- TinyGPS-Bibliothek
Kosten
Gesamt ca. 60 $ (Mega ~30 $, GPS ~30 $).
Hintergrund: GPS-Grundlagen
Was ist GPS?
Das Global Positioning System besteht aus ≥ 24 Satelliten, die die Erde zweimal täglich umkreisen. Jeder sendet ein eindeutiges Signal mit Orbitaldaten. Empfänger nutzen Trilateration aus Laufzeitdifferenzen mehrerer Satelliten für 2D- (3 Satelliten) oder 3D-Position (4+ Satelliten). Zusatzdaten: Geschwindigkeit, Kurs, Strecke, Zielentfernung.
Signalstruktur
- Pseudorandom-Code – Satelliten-ID.
- Ephemeriden – genaue Satellitenposition, Uhrzeit, Gesundheitsstatus.
- Almanach – grobe Orbitaldaten aller Satelliten für schnellen Erstfix.
NEO-6M Modul im Detail
Chip-Features
- u-blox NEO-6M: 22 Satelliten / 50 Kanäle, -161 dBm Tracking-Empfindlichkeit, 45 mA Stromaufnahme.
- Time-To-First-Fix (TTFF) < 1 s.
- Power Save Mode (PSM) reduziert Verbrauch auf 11 mA (ideal für Wearables).
- UART-Schnittstelle, 3,3 V Logik (5 V tolerant), Standard-Baud 9600 (4800–230400 einstellbar).
Onboard-Peripherie
- Pos-Fix LED: Kein Blinken = Satellitensuche; 1 Hz Blinken = Fix gefunden.
- 3,3 V LDO (MIC5205): Direkte Speisung von 5 V (Arduino) möglich.
- EEPROM (HK24C32, 4 KB, I²C) + Knopfzelle: Battery-Backed-RAM (Uhr, letzte Position, Config) für schnellen Warmstart (TTFF ~1 s). Ohne Batterie Kaltstart. Batterie lädt bei Betrieb, hält ~2 Wochen.
Pinbelegung
| Pin | Funktion |
|---|---|
| VCC | 3,3–5 V Versorgung (an Arduino 5 V) |
| GND | Masse |
| TxD | Seriell OUT (an Arduino RX) |
| RxD | Seriell IN (an Arduino TX) |
Arduino Mega 2560 – Übersicht
- ATmega2560, 54 Digital-I/O (15 PWM), 16 Analog-In, 16 MHz Quarz.
- 4 Hardware-UARTs (Serial0: 0/1, Serial1: 19/18, Serial2: 17/16, Serial3: 15/14).
- USB, DC-Jack, Vin (7–20 V), 5 V/3,3 V Regler, Reset, I²C (20/21), SPI (50–53).
Verkabelung
Empfohlen: Hardware-Serial1 (Pins 18/19) – keine SoftwareSerial nötig.
| Arduino Mega | NEO-6M |
|---|---|
| 3,3 V | VCC |
| GND | GND |
| TX1 (Pin 18) | RxD |
| RX1 (Pin 19) | TxD |
Alternativ Serial2 (16/17) oder Serial3 (14/15).
Software-Setup
- TinyGPS-Bibliothek herunterladen, entpacken, nach
Documents/Arduino/librarieskopieren (kein Bindestrich im Ordnernamen). - Arduino IDE öffnen, Board „Arduino Mega 2560“ wählen, Port auswählen.
- Sketch hochladen (siehe Code-Bereich).
- Serieller Monitor (57600 Baud) zeigt Breitengrad/Längengrad mit 6 Dezimalstellen.
Code
// Verbindung über Serial1 (Pin 18/19)
#include <TinyGPS.h>
float lat, lon;
TinyGPS gps;
void setup() {
Serial.begin(57600);
Serial.println("The GPS Received Signal:");
Serial1.begin(9600);
}
void loop() {
while (Serial1.available()) {
if (gps.encode(Serial1.read())) {
gps.f_get_position(&lat, &lon);
Serial.print("Position: ");
Serial.print("Latitude: "); Serial.print(lat, 6); Serial.print(",");
Serial.print("Longitude: "); Serial.println(lon, 6);
}
}
}
Für Serial2/3 einfach Serial1 durch Serial2 bzw. Serial3 ersetzen und Pins entsprechend anschließen.
Ergebnis
Serieller Monitor zeigt kontinuierlich aktuelle Position (Lat/Lon). Bei gutem Empfang (Freiluft) innerhalb von Sekunden stabiler Fix. Indoor ggf. länger oder kein Fix.
Tipps & Hinweise
- Antenne freistehend platzieren (kein Metall davor).
- Erster Fix (Kaltstart) kann 30–60 s dauern; danach < 1 s dank Backup-Batterie.
- Für Logger-Anwendungen: SD-Karte + RTC ergänzen.
- TinyGPS++ (Nachfolger) bietet mehr Features (Kurs, Geschwindigkeit, Höhe, Satellitenanzahl).
Herstellungsprozess
- Wassertropfen-Hochgeschwindigkeitsfotografie mit Arduino Nano – DIY Setup
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- Temperatur & Luftfeuchte mit DHT11 auf Blynk auslesen – Arduino-Tutorial Schritt für Schritt
- Musikalische Töne mit Arduino erzeugen: Schritt-für-Schritt-Anleitung
- Arduino an NMEA‑0183 anschließen: Schritt-für-Schritt-Anleitung
- Arduino GPS & TFT Touchscreen Shield: Echtzeit-Positionsanzeige
- Modbus auf Arduino meistern: Schritt-für-Schritt-Anleitung
- GPS-Daten auf MicroSD-Karte loggen mit Visuino & Arduino Nano
- GPS-Zielanzeiger mit Arduino UNO & NEO-6M Modul bauen