Главная » Arduino » Подключение GPS модуля Skylab SKM53 к Arduino Mega 2560

Подключение GPS модуля Skylab SKM53 к Arduino Mega 2560

Skylab SKM53 GPS Arduino Mega 2560 Arduino  arduino  Сегодня у меня праздник. Удалось запустить GPS модуль Skylab SKM53 на моей Arduino Mega 2560.

Пару месяцев я с ним провозился и все безрезультатно. На Arduino UNO работает, а на моей Arduino Mega 2560 не хотел. За это время я перебрал кучу сторонних скетчей, написал не меньшую кучу своих,но результат был нулевым.

К сожалению причину неполадки мне выяснить так и не удалось, но вот заставить работать SKM53 с Arduino Mega получилось.

Сегодня я просто начал перебирать дискретные порты по порядку и на портах 50-51 и 52-53 этот GPS модуль заработал и показал мне долгожданные координаты. Ну вот закон подлости – заработало на последних контактах.

Теперь займемся подключением. Как и в прошлый раз, вначале будем использовать схему подключения экрана к Adruino.

Теперь займемся подключением самого GPS модуля Skylab SKM53.

  • RXD – цифровой пин 50 Arduino Mega (можно не подключать)
  • TXD – цифровой пин 51 Arduino Mega
  • RST
  • NC
  • GND – GND Arduino Mega
  • VCC - +5 В Arduino Mega

Для работы с GPS нам понадобится установить дополнительную библиотеку TinyGPS.

Skylab SKM53 GPS Arduino Mega 2560 Arduino  arduino    tinygps.rar (10,6 KiB, 575 hits)

Скачайте архив и распакуйте его содержимое в \arduino-1.0\libraries\

Загрузим проверочный скетч, который нам покажет координаты (широта и долгота), скорость (км/ч), количество спутников, высоту над уровнем моря, дату и время (по Гринвичу) – последние параметры будут заменять друг друга в нижних строках экрана каждую секунду:

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

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

TinyGPS gps;
// Дискретные пины, к которым подключен GPS SKM53
SoftwareSerial skm53(51, 50);

bool line=false; // переменная для смены информации в 3 и 4 строках экрана

void setup()

  /* Инициализируем дисплей: 4 строки по 16 символов */
  lcd.begin(16, 4);
  // Скорость работы с GPS модулем (для SKM53 9600)
  skm53.begin(9600);
  //Serial.begin(115200);

  // Выводим на экран текст о том, что идет поиск спутников
  lcd.setCursor(0, 0);
  lcd.print("Find satellites");
  lcd.setCursor(0, 1);
  lcd.print("  Please  Wait  ");
}

void loop()
{
  bool newData = false;

  // Каждую секунду парсим GPS данные
  for (unsigned long start = millis(); millis() - start < 1000;) /* между millis() – start  стоит минус, просто WordPress заменяет его на черточку.*/
  {
    while (skm53.available())
    {
      char c = skm53.read();
      if (gps.encode(c)) newData = true;
    }
  }

  if (newData)
  {
    float lat, lon;
    unsigned long age;

    int year;
    byte month, day, hour, minutes, second, hundredths;

    // Получаем координаты
    gps.f_get_position(&lat, &lon, &age);
    // Получаем дату и время
    gps.crack_datetime(&year, &month, &day, &hour, &minutes, &second, &hundredths, &age);

    lcd.clear();

    // Строка 1 - широта
    lcd.setCursor(0, 0);
    lcd.print("Lat: ");
    lcd.print(lat,6);

    // стока 2 - долгота
    lcd.setCursor(0, 1);
    lcd.print("Lon: ");
    lcd.print(lon,6);

    if (line==true) {
      // Строка 3 - скорость км/ч
      lcd.setCursor(-4, 2);
      lcd.print("Speed: ");
      lcd.print(gps.f_speed_kmph());
      lcd.print("     ");

      // Строка 4 - количество спутников и высота в метрах
      lcd.setCursor(-4, 3);
      lcd.print("Sat:");
      lcd.print(gps.satellites());
      lcd.print(" Alt:");
      lcd.print(gps.f_altitude());
      lcd.print("     ");
    }

    if (line==false) {
      // Строка 3 ' - дата
      lcd.setCursor(-4, 2);
      lcd.print("Date:");
      lcd.print(year);
      lcd.print("-");
      lcd.print(month);
      lcd.print("-");
      lcd.print(day);
      lcd.print("     ");

      // Строка 4 ' - время
      lcd.setCursor(-4, 3);
      lcd.print("Time:");
      lcd.print(hour);
      lcd.print(":");
      lcd.print(minutes);
      lcd.print(":");
      lcd.print(second);
      lcd.print("     ");
    }

    line=!line;
  }
}

Skylab SKM53 GPS Arduino Mega 2560 Arduino  arduino

Похожие записи
Моя домашняя метеостанция – Часть 1. Сборка ... Решил собрать себе небольшую метеостанцию из подручного железа, которое было куплено довольно давно и валялось без дела в коробке. Подобных проектов ...
Ведроид-мобиль — робот на Arduino — Ча... В этой статье я опишу процесс создания шилда управления роботом, подключение ультразвукового дальномера и реализацию алгоритма объезда препятствий. На...
Подключение I2C экрана к Arduino Пошаговая инструкция по подключению экрана к контроллеру Arduino по шине I2C. Получил от китайцев два 20х4 экрана с I2C контроллерами - буду подключа...
Детектор электромагнитного поля на Arduino... Данное устройство поможет вам без труда обнаружить источники электромагнитных излучений, которыми являются все электроприборы, которые нас окружают. ...
This entry was posted in Arduino and tagged , , , . Bookmark the permalink.

10 комментариев: Подключение GPS модуля Skylab SKM53 к Arduino Mega 2560

  1. 4igo4ek говорит:

    А расскажи пожалуйста как ты завел этот модуль на UNO?
    У меня он отказывается определять координаты =(

  2. 4igo4ek говорит:

    Спасибо, завелось. Точнее и заводилось, только нужно было подождать пока спутники появятся =)

  3. Juris говорит:

    А нет ли там такого, что у Ардуино Мега на ногах 50-53 стоят выводы MISO, MOSI и т.п. Может быть это как-то с этим связано? Например, читалка SD карточек только через эти входы запустилась, причем обнаружил это тоже не сразу. Везде писали подключать к ногам 10-12, а потом накопал что на Меге надо именно на 50-53, иначе не работает.

  4. AL MICH говорит:

    Подключил модуль GT-1613-skr , загрузил библиотеку, но в резудьтате на монитор выдает билеберду! Вместо букв какие то символы! Как это обЪяснить?

    • Juris говорит:

      Во-первых проверьте скорость передачи данных на/через COM(USB) порт. Посмотрите какое число написано в Serial.begin(), такое же надо и на компьютере в терминале выставить. Сам пару раз так натыкался.

  5. AL MICH говорит:

    Получилось!! А всего то Serial.begin(115200); поменял на Serial.begin(9600); Пошел нормальный текст!

    • РНС говорит:

      Здравствуйте.
      Если можно хотелось бы посмотреть скетч.

      И схему подключения.

      За ранее спасибо.

  6. dfdfdfd@mail.ru говорит:

    а с кетч в архиве не рабочий!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *