Arduino Mega не получает данные от Neo-6M

Я пытаюсь получить данные из GPS-модуля Neo-6M с помощью Arduino Mega, но условие «Пока (gpsSerial.available() > 0») выполняется. Я считаю, что это означает, что байты отсутствуют. передается из модуля в последовательный порт, но я не знаю, почему. Лампочка на Нео-6М мигала, что означает, что он блокируется, но данные не выдаются.

#include <SoftwareSerial.h>

// Выберите два контакта Arduino, которые будут использоваться для последовательного порта программного обеспечения.
int RXPin = 19;
int TXPin = 18;

//Скорость NEO-6M по умолчанию — 9600.
int GPSBaud = 9600;

// Создаем программный последовательный порт под названием "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);

void setup()
{
  // Запускаем аппаратный последовательный порт Arduino на скорости 9600 бод
  Serial.begin(9600);

  // Запуск программного последовательного порта на скорости GPS по умолчанию
  gpsSerial.begin(GPSBaud);
  Serial.write("123");
}

void loop()
{
  // Отображает информацию, когда доступно новое предложение.
  while (gpsSerial.available() > 0)
    Serial.write(gpsSerial.read());
}

У меня это работало на Uno, подключившись к контактам 2, 3, а не к 18 и 19. Я также пробовал поменять местами контакты 18 и 19, но все равно заметил.

Спасибо за помощь

РЕДАКТИРОВАТЬ: У меня есть RX и TX, подключенные к Mega к контактам 1 и 2, однако он будет печатать информацию GPS только при нажатии или удерживании кнопки сброса.

, 👍0


1 ответ


Лучший ответ:

0

Не все контакты на серийном номере программного обеспечения поддержки Mega, см. ниже:

https://www.arduino.cc/en/Reference/SoftwareSerial

Пинья 18/19 на самом деле являются аппаратными последовательными контактами, поэтому использование последовательного программного обеспечения не требуется.

Изменить, следует отметить, что для использования аппаратных контактов 18/19 вы должны использовать конструктор Serial1.begin(9600)

,