Главная » 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, 567 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

Похожие записи
Ведроид-мобиль — робот на Arduino — Ча... В этой статье я опишу процесс создания шилда управления роботом, подключение ультразвукового дальномера и реализацию алгоритма объезда препятствий. На...
Подключение барометра BMP085 к Arduino... В этот раз я опишу процесс подключения цифрового датчика атмосферного давления BMP085 к Arduino. Этот датчик я собираюсь использовать в проекте домаш...
Подключение аналогового датчика температуры LM335A... В этот раз подключим аналоговый температурный датчик LM335A и выведем с него показания на экран. Работу с экраном я описал в прошлом посте, поэтому н...
Arduino – подключение датчика дымовых газов ... Ко мне в руки попал датчик дымовых газов CG312 MQ2, который позволяет определять наличие отдельных компонентов газовых смесей и будет реагировать на ...
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 не будет опубликован. Обязательные поля помечены *