Сбой кода 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);
}
@Ash96, 👍1
Обсуждение0
Смотрите также:
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Не удается снова загрузиться после смены платы
- ATMEGA328P-U vs ATMEGA328-PU
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- Arduino 16 МГц только с 3,3 В?
- Генерация стабильной частоты
- В чем разница между ATMEGA32 и ATMEGA328?
Может быть, затмение. Вы уверены, что ваш источник питания достаточно мощный? SIM900A нужно довольно много тока., @StarCat
В настоящее время я только что включил sim-карту 900A, используя штыри 5V и GND Arduino, @Ash96
А как работает Arduino? Нам нужно знать максимальный ток, а также то, как подключен источник питания (через бочкообразный разъем, через USB или непосредственно к контакту 5 В)., @chrisl