I have tried a lot to connect Arduino UNO and GPRS shield v2 but it does not work. AT Command Tester & Sscom is not responding (no feedback from gprs for all commands, but I can see my Serial.print()). I have followed each and every instruction from the wiki. but nothing.
Despite this, the green LED works properly when I Power up the SIM900 and I can send my command to arduino.
[size=150]Using GPRS Shield With Mega[/size]
- Connect pin-7 to pin-10 (pin-8 to pin-11) by jumper wire
- Use this code:
#include <SoftwareSerial.h>
SoftwareSerial GPRS(10, 11);
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
}
- Go AT command tester describe in product wiki, Connect with 19200 bps
Note:Don’t forget to plug the jumpers to SWserial mode.
Good luck!
i’m also encountered the same problem as above. instead using uno, i’m using arduino leonardo. does your code above apply as well to arduino leonardo?
[size=150]Code for leonardo[/size]
Serial 1 hardware~
[code]
#include <SoftwareSerial.h>
unsigned char buffer[64]; // buffer array for data recieve over serial port
int count = 0; // counter for buffer array
void setup()
{
Serial1.begin(19200); // the GPRS baud rate
Serial.begin(19200); // the Serial port of Arduino baud rate.
}
void loop()
{
if (Serial1.available()) // if date is comming from softwareserial port ==> data is comming from gprs shield
{
while (Serial1.available()) // reading data into char array
{
buffer[count++] = Serial1.read(); // writing data into array
if (count == 64)
break;
}
for ( int j=0;j<count;j++)
{
Serial.write(buffer[j]);
}
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
Serial1.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
}[/code]