Грамотный запуск SIM900 shield
- Войдите на сайт для отправки комментариев
Пт, 28/10/2016 - 10:36
Подскажите, как грамотно запустить SIM900?
чтобы устроство запустилось без глюков...
модуль такой http://ali.ski/AHFRR, бп 5в 2а http://ali.ski/W1jvD хотя наверное надо проверить его...
сейчас запускаю так. старт не всегда удачный. пересмотрел множество примеров в интернете...
void setup() { pinMode(9, OUTPUT); digitalWrite(9,LOW); delay(1000); digitalWrite(9,HIGH); delay(2000); digitalWrite(9,LOW); delay(25000); Serial.begin(9600); gsm.begin(19200); //gsm.write("A"); // отправляем А чтобы sim900 автоматически настроился на скорость // delay(1000); //gsm.println("AT+IPR=19200"); delay(300); gsm.print("AT+CMGF=1\r"); //устанавливает текстовый режим смс-сообщения delay(300); gsm.print("AT+IFC=1, 1\r"); //устанавливает программный контроль потоком передачи данных delay(300); gsm.print("AT+CPBS=\"SM\"\r"); //открывает доступ к данным телефонной книги SIM-карты delay(300); gsm.print("AT+GSMBUSY=1, 1\r"); //запрет всех входящих звонков delay(300); gsm.print("AT+CMGDA=«DEL ALL»\r"); //Очищаем накопившиеся СМС delay(300); gsm.print("AT+CNMI=1,2,2,1,0\r"); //включает оповещение о новых сообщениях delay(10000); che=EEPROM.read(10); TkritMin=EEPROMReadInt(11); TkritMax=EEPROMReadInt(13); TkritFlag=EEPROM.read(15); RC.enableReceive(0); // Receiver on interrupt 0 => that is pin #2 for(int i = 0; i <= numPins -1; i++) { pinMode(Pins[i],OUTPUT); PinStatus[i]=EEPROM.read(i); digitalWrite(Pins[i],PinStatus[i]); } for(int i = 0; i <= numRC -1; i++) { loopTime[i] = 0; } TimePrint = 0; loopTimeTemp = 0; Serial.println("GOTOVO"); }
почему иногда от gsm прилетают кракозябры? пол строки нормальная, половина кракозябры. и раз на раз не приходится. иногда норм, а иногда перезагрузишь и не работает как надо.
питание подавал до 12в 3а
что я делаю не так...
если запустить ардуину секунд через 20 после включения модуля, всё отлично работает... как получить стабильно заводящееся устройство?