Zum Inhalt springen
Arduino Tutorials Anfänger · 1 Std. · Aktualisiert am 17. Juli 2026

Das GPS-Modul NEO-6M am Arduino anschließen und verwenden

Das GPS-Modul NEO-6M am Arduino anschließen und verwenden

Um die Koordinaten deines Standorts herauszufinden, benötigst du nur einen Arduino, das GPS Modul NEO-6M und ein paar Zeilen Code. Erfahre in diesem Tutorial, wie du dieses Modul richtig anschließt und die GPS-Daten ausliest.

Diese Bauteile brauchst du

Affiliate-Links: Kaufst du über diese Links, erhält Pollux Labs eine kleine Provision – für dich ohne Mehrkosten.

Überblick und Anschluss des GPS-Moduls

Das NEO-6M verwendet GPS (Global Positioning System), um seinen aktuellen Standort zu ermitteln. GPS ist seit dem Jahr 2000 frei verfügbar und mittlerweile allgegenwärtig. Für die Bestimmung der Position dienen spezielle Satelliten, mit denen sich dein GPS-Modul verbindet. Übrigens lässt sich so nicht nur der Standort ermitteln, sondern auch die Geschwindigkeit. Auf Wikipedia erfährst du mehr über die Funktion von GPS.

Das Bauteil besteht aus zwei Teilen – aus dem Modul selbst und einer externen Antenne. Außerdem wird es üblicherweise ohne verlötete Header-Pins geliefert. Du benötigst also einen Lötkolben, um diese selbst anzubringen.

GPS-Modul-NEO-6M

Am GPS-Modul befinden sich vier Anschlüsse, die du wie folgt mit deinem Arduino verbindest:

VCC5V
RXDigitalpin 3
TXDigitalpin 4
GNDGND

Stecke zunächst die externe Antenne, wie auf den folgenden Bildern zu sehen, in ihren Anschluss auf der Platine. Danach verbindest du die Pins VCC und GND mit einem 5V-Pin und GND an deinem Arduino.

Die Pins RX und TX sind für die Kommunikation mit deinem Arduino zuständig. Mit welchen Digitalpins du sie verbindest, steht dir frei. Damit du den folgenden Sketch gleich verwenden kannst, verbinde RX mit Pin 3 und TX mit Pin 4.

Hinweis: Je nachdem wie gut oder schlecht (z.B. in geschlossenen Räumen) der Empfang ist, kann es etwas dauern, bis die Verbindung deines Moduls mit den GPS-Satelliten steht. Sobald die Verbindung steht, blinkt eine LED auf dem Modul. Sollte sie auch nach mehreren Minuten nicht anfangen zu blinken, wechsle am besten deinen Standort.

GPS-Daten empfangen und im Seriellen Monitor ausgeben

Im Prinzip benötigst du keine besondere Bibliothek, um die Daten des GPS-Moduls zu erhalten. Da es sich hierbei jedoch um recht schwer lesbare Rohdaten handelt, empfiehlt sich die Bibliothek TinyGPSPlus, die dein Vorhaben erheblich vereinfacht.

Diese Bibliothek installierst du bequem über den Bibliotheksverwalter der Arduino IDE: Öffne ihn über Sketch > Bibliothek einbinden > Bibliotheken verwalten (oder nutze das Icon im Menü links), suche nach TinyGPSPlus und klicke auf Installieren. Alternativ findest du den Quellcode auch auf Github.

Jetzt kannst du die Bibliothek in deinen Sketch einbinden:

#include <TinyGPS++.h>

Du benötigst noch eine weitere Bibliothek: SoftwareSerial.h – diese steuert die Kommunikation zwischen deinem Arduino und dem GPS-Modul. Diese ist bereits in der Arduino IDE installiert.

#include <SoftwareSerial.h>

Anschließend erstellst du zwei Instanzen: gps von TinyGPSPlus wertet später die Daten aus. Die Instanz ss von SoftwareSerial übernimmt die Kommunikation – ihr übergibst du die Pins, an denen du das Modul angeschlossen hast. Achtung, die Angabe erfolgt aus Sicht des Arduino: Zuerst kommt der Empfangspin (RX) deines Arduino, an dem TX des Moduls hängt – also Pin 4. Danach der Sendepin (TX) deines Arduino, an dem RX des Moduls hängt – also Pin 3.

TinyGPSPlus gps;
SoftwareSerial ss(4, 3);

In der Funktion void setup() legst du die Baud-Raten für den Seriellen Monitor und die Kommunikation mit dem GPS-Modul fest:

void setup() {
  Serial.begin(115200);
  ss.begin(9600);
}

Nun folgt der Teil, in dem die Action passiert, der Loop. Hier wird zunächst geprüft, ob das Modul angeschlossen ist und es Daten von Satelliten empfängt. Ist das der Fall, besorgst du dir diese Daten lesbar als Koordinaten über die Funktionen gps.location.lat() und gps.location.lng() und gibst sie im Seriellen Monitor aus.

void loop() {
  while (ss.available() > 0) {
    gps.encode(ss.read());

    if (gps.location.isUpdated()) {

      // Breitengrad mit 6 Nachkommastellen
      Serial.print("Breitengrad= ");
      Serial.print(gps.location.lat(), 6);

      // Längengrad mit 6 Nachkommastellen
      Serial.print(" Längengrad= ");
      Serial.println(gps.location.lng(), 6);
    }
  }
}

Und das war es auch schon. In deinem Seriellen Monitor erscheinen nun die GPS-Koordinaten deines Standorts. Hier der gesamte Sketch zum Rauskopieren:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

TinyGPSPlus gps;
SoftwareSerial ss(4, 3);

void setup() {
  Serial.begin(115200);
  ss.begin(9600);
}

void loop() {
  while (ss.available() > 0) {
    gps.encode(ss.read());

    if (gps.location.isUpdated()) {

      // Breitengrad mit 6 Nachkommastellen
      Serial.print("Breitengrad= ");
      Serial.print(gps.location.lat(), 6);

      // Längengrad mit 6 Nachkommastellen
      Serial.print(" Längengrad= ");
      Serial.println(gps.location.lng(), 6);
    }
  }
}

Wie geht es weiter?

Damit die Koordinaten nicht nur im Seriellen Monitor erscheinen, schließe ein Display an deinen Arduino an. So schließt du ein TFT-Display oder ein LCD-Display an.