Здравствуйте! Я делаю проект как на ссылке, http://www.instructables.com/id/Version-20-Arduino-Controlled-Car-Tracking-System/ все сделал как написано, но он мне не отправляет смс. мое мнение gsm модуль не понимает команды. как можно узнать понимает ли модуль команды или нет?
понимать то понимает, только через терминал. А вот через ардуино не получается чтобы ардуино посылал команды на модем. и не могу получить ответ от модема, какие команды считывает сигналы с модулю и принтывает?
Здравствуте! Помогите разобраться с кодом. GSM модуль SIM900 подключен к arduinoMega 2560 напосал функцию для порверки ответа на команду AT, ответ есть но проблема с inSizze значение разное в начальных итерациях то 63 то 20, а стабильно почему то 6 хотя должно быть 3(но в итоге поставил 70 "с запасом") если меньше то виснет. А в условии где смотрим последний символ и хотим в тетминатор добавить \0 вообще не заходит. Код (Text): void ListenGSMOK() { int x=0; do // выполняем пока x<1 { Serial3.print("ATE0\r"); Serial3.print("AT\r"); Serial.println("ListenGSMOK"); Serial3.flush(); Serial.flush(); delay(200); pinMode(LEDOK, OUTPUT); // digitalWrite(LEDOK, HIGH); // char str[70]={0}; // int inSizze=0; // Переменная которая будет содержать размер буфера if (Serial3.available() > 0) { inSizze = Serial3.available(); // Получаем длину строки и записываем ее в переменую Serial.println(inSizze); for (int i = 0; i < inSizze; i++) { while(!Serial3.available()){} ; // ждем прихода следующего символа str[i] = Serial3.read(); // Читаем каждый символ, и пишем его в массив if (str[inSizze] == '\r') { str[inSizze++] ='\0'; //Добавляем нуль терминатор Serial.println(inSizze); } } if (!strcmp(str,"OK") == 0) // Сравниваем массив используя функцию strcmp { //Serial.print(str); Serial.println("OK"); x=2; /////////////////////////////////////////////////////////////////// // Этот кусок кода выводит что все же пришло??? // // Serial.print("Error command! "); // // for (int i = 0; i < inSizze; i++) // // { // // //Serial.println (sizeof(str)); // // Serial.print(str[i]); // // } // /////////////////////////////////////////////////////////////////// } } digitalWrite(LEDOK, LOW); // } while(x<1); Serial.println("GOOD"); }