I just got a new Sim900 and connected to an Arduino Uno. I used the code below to send a text to myself. I received the text on my cell, but I did not receive any echo on my serial monitor (ie. "OK"). I have tried swapping the RX/TX pins and different baud rates with no success.
void setup()
{
Serial.begin(9600); //Baud rate of the GSM/GPRS Module
Serial.println("");
delay(2000);
Serial.println("AT+CMGF=1");
delay(1000);
Serial.println("AT+CMGS=\"+120########\""); //Number to which you want to send the sms
delay(1000);
Serial.print("This is a test."); //The text of the message to be sent
delay(1000);
Serial.write(0x1A); // send CTRL - z to end message
Serial.write(0x0D); // Carriage Return
Serial.write(0x0A); // Line Feed
delay(5000);
}
void loop()
{
}
As @hlovdal says, using delay between messages is a bad idea. You have to wait the answer of each command and take actions depending on the answer (or because a timeout).
Assuming that that's all your code, you're are skipping the part of reading the serial port. Just like you do serial.write, you have to use serial.read to get the incoming characters. Maybe this is the reason because you're not receiving anything.
Finally, Arduino UNO's got one UART port, so if you want to have a serial monitor for debugging, you'll have to use SoftwareSerial to communicate with the SIM900.