Доброго времени суток! Приобрел Seeed Studio GPRS Shield v3.0. Подключил к arduino uno, на самом шилде перемычки выставил как на фото. Залил пример с интернета для работы с этим скетчем, открываю монитор порта, ввожу команду AT, но в ответ ничего не приходит. В чем может быть проблема? Код (C++): #include <SoftwareSerial.h> SoftwareSerial GPRS(7, 8); unsigned char buffer[64]; // buffer array for data recieve over serial port int count=0; // counter for buffer array void setup() { GPRS.begin(19200); // the GPRS baud rate Serial.begin(19200); // the Serial port of Arduino baud rate. } void loop() { if (GPRS.available()) // if date is comming from softwareserial port ==> data is comming from gprs shield { while(GPRS.available()) // reading data into char array { buffer[count++]=GPRS.read(); // writing data into array if(count == 64)break; } Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array count = 0; // set counter of while loop to zero } if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook GPRS.write(Serial.read()); // write it to the GPRS shield } void clearBufferArray() // function to clear buffer array { for (int i=0; i<count;i++) { buffer[i]=NULL;} // clear all index of array with command NULL }
Какой-то скетч у вас сложный. Попробуйте с более простым Код (C++): #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(19200); //Скорость порта для связи Arduino с компьютером Serial.println("Goodnight moon!"); mySerial.begin(19200); //Скорость порта для связи Arduino с GSM модулем mySerial.println("AT"); } void loop() { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); } И уточните скорость порта на шилде. Если выставлено не правильно, шилд может не отвечать.
А скажите, пожалуйста, можно ли на UNO использовать два SoftwareSerial? У меня на 3 и 4 ноге сидит GPS модуль.
Как то подробно с этим вопросом не разбирался, но где-то читал, что одновременно два программных UART существовать не могут. Они будут работать попеременно.