Пустой вывод в последовательном мониторе

Итак, мой SIM900 GSM Shield работает нормально, индикатор Netlight мигает, а индикатор состояния горит постоянно. После того, как я загрузил код, ничего не происходит с mySerial() в моем последовательном мониторе. Могу я занять ваше время, чтобы вы проверили этот код? Интересно, проблема здесь?

#include<SoftwareSerial.h>

//Создаем программный последовательный объект для связи с SIM900
SoftwareSerial mySerial(7, 8); //SIM900 Tx & Rx подключен к Arduino #7 & #8

/*void SIM900power()
{
  pinMode(9, OUTPUT); 
  digitalWrite(9,LOW);
  delay(1000);
  digitalWrite(9,HIGH);
  delay(2000);
  digitalWrite(9,LOW);
  delay(3000);
}*/
void setup() {
  // поместите сюда код установки для однократного запуска:
  // Начать последовательную связь с Arduino и Arduino IDE (последовательный монитор)
  Serial.begin(9600);
  //Начнем последовательную связь с Arduino и SIM900
  mySerial.begin(9600);

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

  mySerial.println("AT"); //Подтверждение связи с SIM900
  updateSerial();
  mySerial.println("AT+CSQ"); //Тест качества сигнала, диапазон значений 0-31, 31 — лучший
  updateSerial();
  mySerial.println("AT+CCID"); //Прочитайте информацию о SIM-карте, чтобы убедиться, что SIM-карта подключена
  updateSerial();
  mySerial.println("AT+CREG?"); //Проверяем, зарегистрировался ли он в сети
  updateSerial();
  mySerial.println("AT+COPS?"); // Убедитесь, что вы подключены к сети;
  updateSerial();
}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:
  updateSerial();
}

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

Вывод:

, 👍0

Обсуждение

Какова цель SIM900power()? Вы определили его, но никогда не использовали., @Edgar Bonet

Я только что прокомментировал это, и все же он выводит только «инициализация..»., @TechHermit

ваш код содержит команду, которая заставляет Arduino останавливаться и ничего не делать в течение 500 мс при каждой итерации цикла (), @jsotola

посмотрите пример серийного кода программного обеспечения arduino и сравните его с вашим кодом, @jsotola

Это сайт, на который я копирую код: [ссылка](https://lastminuteengineers.com/sim900-gsm-shield-arduino-tutorial). Это не объяснило часть о том, почему это была задержка (500), поэтому я не знаю, как это работает. @jsotola, @TechHermit

Я пересмотрю ваше предложение. :), @TechHermit

Вы уверены, что используете правильную скорость передачи данных? Когда связь не работает, но в остальном модуль ведет себя правильно, это может быть проблемой., @chrisl

Я понял! Дурак я. Я просто переделал его. Спасибо за ваше мнение. :D, @TechHermit

@TechHermit Тогда, пожалуйста, ответьте на свой вопрос или удалите вопрос. Комментарии не постоянны. Если они будут удалены, другие будут думать, что проблема не решена., @chrisl


1 ответ


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

0

Шаг 1) Проверьте соединения RX TX Шаг 2) Измените скорость передачи данных на 115200. Выключите Arduino. Выключить гсм. Сначала запустите GSM, а затем Arduino.

или Шаг 3) Загрузите серийный код программного обеспечения и просто отправьте «AT» без кавычек, используя последовательный монитор. Если ваши соединения правильные, вы должны получить ответ как AT. Также убедитесь, что скорость передачи данных установлена на 115200. Большинство модулей GSM имеют скорость передачи по умолчанию 115 200 бод или имеют автоматическую настройку скорости, но их необходимо выключить и снова включить.

,