ENVIAR Y RECIBIR SMS CON ARDUINO Y MODEM GPRS

Hola, Estoy utilizando el siguiente código para que arduino lea y reciba sms. Cuando tenga un sms no leído mandará una señal y un sms a un número determinado. No sé que es lo que no funciona porque no hace lo que supuestamente debería. int ledPin = 13; // PIN de test char temp[58]; byte readByte=' '; // Variable donde leemos del puerto serie

int seleccion;

void setup() {

Serial.begin(9600); configurarCMC("+34644109030"); // Definir CMC // configurarCMC("+34607003110") vodafone messageFormat(true); // Modo TEXTO

}

void configurarCMC(char* CMC){ /* Configura el CMC a través del cual se van a remitir los SMS MoviStar +34609090909 Orange +34????????? Vodafone +34?????????

Ejemplo:

Comando: AT+CSCA=+34609090909 Respuesta: OK

*/ Serial.print("at+csca="); Serial.println(CMC); delay(1000); }

void messageFormat(boolean formato){ /* Elige el formato con el que vamos a trabajar

Ejemplo:

Comando: AT+CMFG=1 Respuesta: OK

*/ Serial.print("at+cmgf="); if (formato) { Serial.println("1"); // Modo texto }else { Serial.println("0"); // Modo PDU } delay(1000); }

void loop() {

/* Solicita el listado de los SMS que hay en la SIM. Según "selección" se muestran: 0 Menssajes no leidos 1 Mensajes leidos 2 Mensajes almacenados sin enviar 3 Mensajes almacenados y enviados 4 Todos

Ejemplo 1: Hay SMS almacenados

Comando: AT+CMGL=ALL Respuesta: +CMGL: 1,"REC UNREAD","609090909",,"07/04/05,22:03:33+08" Mensaje de prueba +CMGL: 2,"REC UNREAD","609090909",,"07/04/05,22:03:35+08" Mensaje de prueba +CMGL: 3,"REC UNREAD","609090909",,"07/04/05,22:03:42+08" Mensaje de prueba OK

Ejemplo 2: No hay SMS almacenados

Comando: AT+CMGL=ALL Respuesta: OK

*/ Serial.print("at+cmgl="); switch (seleccion) { case 0: Serial.println("REC UNREAD");

Serial.print("AT+CMGS="); Serial.print(34,BYTE); // send the " char Serial.print("6+++9"); // send the number change *** by the actual number Serial.println(34,BYTE); delay(1500); Serial.print("Mensaje nuevo recibido"); delay(500); digitalWrite(13, HIGH); // set the LED on delay(2000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); digitalWrite(13, HIGH); // set the LED off delay(5000); Serial.print("at+cmgr=1"); break; case 1: Serial.println("REC READ"); break; case 2: Serial.println("STO UNSENT"); break; case 3: Serial.println("STO SENT"); break; case 4: Serial.println("ALL"); break; } delay(1000);

GRACIAS