Неожиданный результат с GSM-модулем А6

У меня есть модуль GSM A6, вот такой one.

Я собираюсь использовать Arduino Nano в качестве моста для связи с ним, у меня есть внешний источник питания (так как я читал, что этот модуль может потреблять до 2 А при максимальном потреблении) (этот источник питания разделяет GND с модулем и Arduino), и я загружаю следующий код в Nano:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);

void setup()
{
  //Начинаем последовательную связь с Arduino и Arduino IDE (Serial Monitor)
  Serial.begin(9600);

  //Начинаем последовательную связь с Arduino и A6
  mySerial.begin(115200);

  Serial.println("Initializing...");
  delay(1000);


}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Пересылаем полученный последовательный порт в последовательный порт программного обеспечения
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Пересылаем полученное программное обеспечение Serial в последовательный порт
  }
}

Я установил скорость передачи данных на 115200 моего порта SoftwareSerial (подключенного к 10 и 11 контактам на ArduinoNano), потому что (даже если модуль говорит, что у него есть автоматический -detect Speed Hability) не работает, если я установил скорость 9600 (или любую другую) и изменил библиотеку SoftwareSerial для расширения буфера из от 64 тыс. до 512 тыс. (пытаюсь решить эту проблему) после этого страница инструкции (также: ХОРОШАЯ РАБОТА на этой странице!!!).

И это работает... работает относительно хорошо, я имею в виду: Команды AT для тестирования (согласно самому описанию) — это AT и ATI (в одном я получаю «AT /r OK», а последний дает некоторую полезную информацию, например, об ОС и прочее), и они работают, только не показывают мне всегда один и тот же ответ, я оставляю скриншоты:

Ответы команд ATI Ответы AT-команд

Как видите, ответы не всегда точные, есть мусорные символы, и мне нужно, чтобы они были точными, потому что моя идея состоит в том, чтобы создать своего рода сигнализацию, в которой Arduino (One, Nano или Mega) отправляет и получает AT-команды. Раньше я работал с модулем SIM900 и всегда получал один и тот же ответ, когда отправлял AT-команду.

Итак... есть помощь?!

, 👍0


1 ответ


1

Очевидно, библиотека SoftwareSerial имеет некоторые ограничения, поэтому я меняю скорость передачи данных в модуле, используя это предложение:

AT+IPR=9600

И измените код, который я загружаю в Nano, изменив скорость передачи данных в объявлении, с:

mySerial.begin(115200);

в

mySerial.begin(9600);

И теперь всё хорошо :D

,