Duda respecto a comandos AT sim908

Buenas, resulta que puedo ingresar los comandos AT desde monitor Serial y me funciona perfectamente pero a la hora de hacer que se escriban en el codigo estos se escriben pero sin ejecutarse (osea sin dar respuesta)

void setup() {

  //Init the driver pins for GSM function
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  //Output GSM Timing
  digitalWrite(5, HIGH);
  delay(1500);
  digitalWrite(5, LOW);
   Serial.begin(9600);
  Serial.println("OK");
  
}

void conectar_gps() {

  delay (2000);
  Serial.println("AT");
  delay (5000);
  Serial.println("AT+CMGF=1 ");
  delay (5000);
  Serial.println("AT+CGPSRST=0");
  delay (60000);
  Serial.println("AT+CGPSINF=32");
 delay (60000);
 Serial.println(" AT+CGPSSTATUS ? ");
 

}

void loop() {
  digitalWrite(3, LOW); //enable GSM TX、RX
  digitalWrite(4, HIGH); //disable GPS TX、RX
 conectar_gps();
 
  //Espera hasta estar conectado a la red movil

}

jaanredi:
resulta que puedo ingresar los comandos AT desde monitor Serial y me funciona perfectamente

¿Cuál era la tasa de baudios y opción de cambio de línea?

Que es esto?

  digitalWrite(3, LOW); //enable GSM TX、RX
  digitalWrite(4, HIGH); //disable GPS TX、RX

9600
ambos NL & CR

si le quito Serial.begin puedo escribir los comandos at sin ningun tipo de problemas, pero lo que quiero es que se ejecuten de manera automatica

 digitalWrite(3, LOW); //enable GSM TX、RX
  digitalWrite(4, HIGH); //disable GPS TX、RX

es para activar gsm o gps sin necesidad de mover el interruptor

yo tengo una sim900

enviarAT("AT+CGATT=1\r", "OK", 1000); //Iniciamos la conexión GPRS
  enviarAT("AT+CSTT=\"internet.comcel.com.co\",\"comcel\",\"comcel\"", "OK", 3000); //Definimos el APN, usuario y clave a utilizar
  enviarAT("AT+CIICR", "OK", 3000); //Activamos el perfil de datos inalámbrico
  enviarAT("AT+CIFSR", "", 3000);

y solo lo meto asi en el codigo y corre sin problemas

jaanredi:
9600
ambos NL & CR

Descartadas inconsistencias de formato y velocidad.

jaanredi:
si le quito Serial.begin puedo escribir los comandos at sin ningun tipo de problemas

¡Eso no tiene sentido!

jaanredi:

 digitalWrite(3, LOW); //enable GSM TX、RX

digitalWrite(4, HIGH); //disable GPS TX、RX




es para activar gsm o gps sin necesidad de mover el interruptor

Entonces explica por qué se comenta que GSM se habilita y GPS se deshabilita.

Ahora otra duda:

jaanredi:
resulta que puedo ingresar los comandos AT desde monitor Serial y me funciona perfectamente

¿Cómo eran las conexiones en ese entonces?

las conexiones son las mismas la unica diferencia es que comento

//Serial.begin(9600);

esto es por que estaba realizando pruebas

digitalWrite(3, LOW); //enable GSM TX、RX
  digitalWrite(4, HIGH); //disable GPS TX、RX

de manera que debo introducir los comandos AT manualmente y no puedo hacer que el programa los auto ejecute

Que placa SIM908 tienes?


sim 908 module v3.0

Porque no usas esta librería SIM900/908 Library

Tomate tu tiempo para utilizar los pines de hardware o SoftwareSerial y luego disfrútala. Funciona perfectamente.
Yo la he usado y la uso.

pruebo y comento los resultados