Сбой кода Arduino

Я пишу код SIM900A + arduino(Arduino UNO with Atmega 328P), чтобы просто отправлять текущую отметку времени каждые 20 минут. Код продолжает сбоить в функции SendMessage (), так как установочные отпечатки продолжают приходить снова и снова. Пожалуйста, дайте мне знать, что я делаю не так. Заранее спасибо

#include <SoftwareSerial.h>
#include <LowPower.h>
SoftwareSerial mySerial(9, 10);
char msg;
char call;
int ctr;

#define TIME_STR_LEN 100  // фактическое количество символов для даты и времени

char timeStamp[TIME_STR_LEN]; // содержит строку времени

void setup()
{
  mySerial.begin(9600); // Настройка скорости передачи данных GSM-модуля  
  Serial.begin(9600); // Настройка скорости передачи данных последовательного монитора (Arduino)
  Serial.println("GSM SIM900A BEGIN");
  mySerial.println( "AT+CLTS=1");
  delay(1000);
  ctr = 0;
  delay(10000);
}

void loop()
{  

  if(mySerial.available()>0)
  {
    while (mySerial.available()>0)
    {
      mySerial.read();
    }  
  }
  
  if (ctr%1 == 0)
  {    
    delay(1000);
    SendMessage();
    delay(100);
    ctr = 0;
    Serial.println("just sent a message");
  }
  delay(60000);
  ctr++;
  //LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART0_OFF, TWI_OFF);  
}

void SendMessage()
{
 mySerial.println( "AT+CCLK?" );
 delay(2000);

 int i = 0;

 if (mySerial.available()>0)
 {
      while (mySerial.available()>0 && i < TIME_STR_LEN) 
      {
        timeStamp[i]=(mySerial.read());
        i++;              
      }
  }
  delay(2000);
  
  mySerial.println("AT+CMGF=1");
  delay(1000);  
  mySerial.println("AT+CMGS=\"xxxxxxxxxx\"\r"); 
  delay(1000);
  mySerial.println("Motor is ON ");
  delay(100);
  mySerial.println(timeStamp);
  mySerial.println((char)26);// ASCII код CTRL+Z
  delay(1000);
}

, 👍1

Обсуждение

Может быть, затмение. Вы уверены, что ваш источник питания достаточно мощный? SIM900A нужно довольно много тока., @StarCat

В настоящее время я только что включил sim-карту 900A, используя штыри 5V и GND Arduino, @Ash96

А как работает Arduino? Нам нужно знать максимальный ток, а также то, как подключен источник питания (через бочкообразный разъем, через USB или непосредственно к контакту 5 В)., @chrisl