Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
Компоненты и расходники
| Arduino Mega 2560 | ×1 |
| GPS-модуль u-blox NEO-6M (с внешней антенной) | ×1 |
Программное обеспечение
- Arduino IDE
О проекте
Не нашёл готового туториала по подключению Arduino Mega к NEO-6M, поэтому написал свой. Надеюсь, пригодится!
Необходимые компоненты
Железо: Arduino Mega (~$30), NEO-6M GPS (~$30). Итого ~$60.
Софт: Arduino IDE.
Что такое GPS
GPS (Global Positioning System) — спутниковая навигационная система из ≥24 спутников. Работает в любую погоду, где угодно, 24/7, без абонентской платы.
Как работает GPS
Спутники летят по точным орбитам, каждые 12 часов облетая Землю. Каждый передаёт уникальный сигнал и орбитальные параметры. Приёмник измеряет задержку сигналов от нескольких спутников и трилатерацией вычисляет свои координаты.
- Для 2D (широта, долгота) нужно ≥3 спутника.
- Для 3D (+высота) — ≥4 спутника.
- Обычно видно 8+ спутников (зависит от времени и места).
- После фиксации позиции приёмник выдаёт: скорость, азимут, пройденный путь, расстояние до цели и т.д.
Структура GPS-сигнала
- Псевдослучайный код — ID спутника.
- Эфемериды — точная позиция спутника, здоровье, дата/время.
- Альманах — орбитальные данные всех спутников на сутки вперёд.
Модуль NEO-6M

- Чип u-blox NEO-6M: до 22 спутников на 50 каналах, чувствительность −161 дБ, потребление 45 мА (режим экономии — 11 мА), TTFF <1 с.
- На борту: 3,3 В LDO (MIC5205), выводы 5-вольт-толерантны — можно подключать прямо к Arduino.
- EEPROM HK24C32 (4 КБ, I²C) + перезаряжаемая кнопочная батарея — сохраняет BBR (часы, последняя позиция, конфигурацию) до 2 недель без питания, что даёт горячий старт ~1 с.
- Индикатор фиксации: не мигает — поиск; мигает 1 раз/с — фиксация получена.
Распиновка NEO-6M
- VCC — питание (можно к 5V Arduino).
- GND — земля.
- TxD — выход данных (к Rx Arduino).
- RxD — вход данных (к Tx Arduino).
Arduino Mega 2560 — кратко
- MCU ATmega2560, 54 цифровых I/O (15 PWM), 16 аналоговых входов.
- 4 аппаратных UART (Serial, Serial1, Serial2, Serial3).
- Питание: USB, Vin (7–20 В), Power Jack.
- Два стабилизатора: 5 В и 3,3 В (до 50 мА).
Подключение
Используем Serial1 (пины 18=Tx1, 19=Rx1):
- Arduino 3,3V → NEO-6M VCC
- Arduino GND → NEO-6M GND
- Arduino Tx1 (18) → NEO-6M RxD
- Arduino Rx1 (19) → NEO-6M TxD
Можно также использовать Serial2 (16/17) или Serial3 (14/15).
Установка библиотеки TinyGPS
- Скачайте библиотеку TinyGPS.
- Распакуйте в
Documents/Arduino/libraries(без дефисов в имени папки). - В IDE: Инструменты → Плата → Arduino Mega 2560.
- Инструменты → Порт → ваш COM-порт.
- Загрузите скетч.
Код (Serial1)
#include
float lat, lon;
TinyGPS gps;
void setup() {
Serial.begin(57600);
Serial.println("The GPS Received Signal:");
Serial1.begin(9600); // GPS на Serial1
}
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);
}
}
}
Для Serial2 замените Serial1 на Serial2, для Serial3 — на Serial3.
Результат

В мониторе порта появятся широта и долгота с 6 знаками после запятой.
Производственный процесс
- Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
- Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
- Модуль GPS u-blox LEA-6H 02: Интеграция с Arduino и Python
- Чтение температуры и влажности DHT11 через Blynk — пошаговый урок для Arduino
- Генерация музыкальных тонов на Arduino: полный спектр 88 клавиш пианино
- Подключение Arduino к NMEA-0183: пошаговое руководство
- Проект Arduino GPS и TFT-сенсорного экрана: отображение местоположения в реальном времени
- Мастерство Modbus на Arduino: пошаговое руководство
- Логирование GPS-данных на MicroSD карту с Visuino на Arduino Nano
- Создание GPS-уведомителя о прибытии с Arduino UNO и модулем NEO-6M