Здравствуйте имею GPRS Shield v2 проблема следующая : Загружаю код : #include "SIM900.h" #include <SoftwareSerial.h> //If not used, is better to exclude the HTTP library, //for RAM saving. //If your sketch reboots itself proprably you have finished, //your memory available. //#include "inetGSM.h" //If you want to use the Arduino functions to manage SMS, uncomment the lines below. #include "sms.h" SMSGSM sms; //To change pins for Software Serial, use the two lines in GSM.cpp. //GSM Shield for Arduino //www.open-electronics.org //this code is based on the example of Arduino Labs. //Simple sketch to send and receive SMS. int numdata; boolean started=false; char smsbuffer[160]; char n[20]; void setup() { //Serial connection. Serial.begin(9600); Serial.println("GSM Shield testing."); //Start configuration of shield with baudrate. //For http uses is raccomanded to use 4800 or slower. if (gsm.begin(2400)){ Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ //Enable this two lines if you want to send an SMS. //if (sms.SendSMS("3471234567", "Arduino SMS")) //Serial.println("\nSMS sent OK"); } }; void loop() { if(started){ //Read if there are messages on SIM card and print them. if(gsm.readSMS(smsbuffer, 160, n, 20)) { Serial.println(n); Serial.println(smsbuffer); } delay(1000); } }; после чего включаю шилд кнопкой power загорается сначало зелёный потом красный индекатор , открываю монитор порта в нём должно появится сообщение которое придёт на симкарту , но там появлиятся ошибка : GSM Shield testing. DB:NO RESP DB:NO RESP DB:NO RESP ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp status=IDLE помогите пожалуйста
А если в начало setup() вставить задержку на время, необходимое для включения шилда? Секунд на 30. Получается, что пока шилд включается кнопкой, функуция setup() ужк завершает работу, и инициализация не производится. Как вариант, после включения шилда надавить на ресет на ардуино (если получится изловчиться, я так понимаю, она оказывается под шилдом, в то время как на самом шилде не дублируется). Еще вариант, воспользоваться программным включением шилда (если оно есть, в некоторых шилдах надо что-то там паять, чтобы софтовое питание заработало), дл/ чего подать в самом начале setup() на соответствующий пин (какой именно - смотреть в документации на шилд) HIGH на 2-3 секунды, снять его и выждать паузу после секунд 10-20, чтобы гарантировать полное включение шилда.
Ваш код точно подходит для GPRS Shield v2? http://wiki.amperka.ru/беспроводная-связь:gprs-shield Какие вижу отличия. Для начала Software serial у этого шилда сидит на 7, 8 ноге и общается с Arduino на скорости 19200. У вас же какой-то gsm.begin(2400); Мне кажется это код для SIM900, подключённого совсем не так, как это сделано в GPRS Shield v2
А зачем столько "мусора"? #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" Зачем вообще програмный serial?В соседних темах обсуждалось и програмное включение и отправка СМС можно тупо почитать.Кстати!Пока у меня не было програмного включения включал шилд вручную-и всё работало.Ему не надо никакой инициализации-только регистрация в ГСМ сети.
Но ведь нам надо подключать библиотеки для работы , как работать без библиотек ???? И расскажите пожалуйста поподробней о регистрации в ГСМ сети .
Можетели вы мне помоч с написанием кода , я сам ещё плохо разбираюсь в среде программирования arduino и мне бы не помешала помощь
В приведённой мной ссылке на вики есть пример с отправкой смс - просто возьмите его, поменяйте номер телефона и вставьте свой текст отправления и загрузите в ардуино — у вас всё заработает.
В нашем конкретном случае АТМега-8 и выше имеют "на борту" встроенный USART (он же Serial) тоесть никакой дополнительный програмный USART не нужен.Всё вот это #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" усложняет программу утяжеляет код и уменьшает быстродействие.Эти библиотеки имеет смысл использовать в маленьких и дешёвых микроконтроллерах не имеющих аппаратного USART В качестве примера можете взять скетч отсюда http://tinyurl.com/omw62xm А вот здесь http://tinyurl.com/lsx3faf уже обсуждалось что и как А здесь http://tinyurl.com/merjphg как работать с "железным"USART (serial)
Ах да ещё проверьте перемычки RX/TX при использовании програмного USART как в примерах они должны стоять SW (software) то есть програмный в случае если захотите использовать "железный" USART они должны стоять в положении HW(hardware). Перемычки находятся справа напротив четвёртого контакта голубого разьёма "гребёнки".
У меня получилось отправлять сообщение при нажатии кнопки , я попробовал загрузить скетч " Управление светодиодами с помощью SMS" он не работает у меня просто загорается зелёный светодиод и он не реагирует на сообщения которые я присылаю , в чём может быть ошибка ?
Проверьте регистр букв отправляемого сообщения то есть буквы в отправляемом СМС должны быть такие же как и в скетче.Помните что "А" и "а" это разные буквы.Поэтому если в скетче "Green on" то и надо отправлять "Green on" а если "green on" то "green on".У меня всё сразу заработало.
Я попробовал изменить включение зелёного если пришло сообщение с текстом A , но всёровно не чего не работает я ввожу теже символы что и в программе , но не чего не получается , я загружаю скетч в плату и у меня сразу загораются оба светодиода (зелёный и жёлтый ) , может ли быть проблема из за того что я использую Arduino at mega 2560 а не Arduino uno как в статье ?
"А"-какая русская или английская?Маленькая или большая?Вряд ли проблема в том что у Вас Arduino at mega 2560-компиляция прошла нормально?Скетч загрузился?Тогда всё должно работать.Главное достоинство Си-кросплатформенность то есть переносимость на любой процессор.Сама инициализация перферии-разная (то что в void setup) а сам процесс (то что в void loop)везде одинаков.Попробуйте залить скетч в первозданном виде как в примере и ещё раз проверьте плату и порт
Нет всё равно не получается , залил скетч из статьи , проверил плату и порт , всё равно не работает . что делать ?
и совсем забыл разве светодиоды должны гореть когда загрузил программу , у меня после загрузки светодиоды горят пока я не отключаю arduino от питания