Consulta sobre Comunicación Serial

Hola a todos, estoy comenzando a programar en Arduino, es fascinante, estoy tratando de hacer un modulo que permita recibir y enviar mensajes SMS, y que al recibir un en particular active una salida, pero al parecer tengo un conflicto con la lectura AT del modulo A6, envio los comandos por el serial ( encender y apagar ) y funciona m pero envio el comando AT y no logro establecer contacto con el modulo A6, incluso coloque un flag para que me indique si entro pero nada, les dejo el codigo para ver si alguien me puede orientar en el error que estoy cometiendo. gracias.

#include <SoftwareSerial.h> 

SoftwareSerial A6MODULE(2,3);

    String Dato;    

void setup()
{


  pinMode(13, OUTPUT);
  Serial.begin(9600);



Serial.println("Cambiando a 9600Bds");
A6MODULE.println("AT+IPR=9600");
 A6MODULE.begin(9600);
delay(5000);
 
 Serial.println("Módulo listo.");

 // Envio de mensajes de texto
// Serial.println("Enviando AT...");
// A6MODULE.println("AT");
// delay(1000); 
// 
//Serial.println("Configurando modo texto AT+CMGF=1 "); //modo texto
//A6MODULE.println("AT+CMGF=1");
// delay(1000);
//
//Serial.println("Indicando de destino xxxxxx");
//A6MODULE.println("AT+CMGS=\"+56992977713\"");
//delay(3000);
//
// Serial.println("Cargando mensaje");
//A6MODULE.println("hola hermosa");
// delay(3000);
//
//Serial.println("Enviando...");
//A6MODULE.println(char(26));
// delay(2000);



 
}

void loop()
{

  
  // Rele

      String cadena = Serial.readStringUntil('\n');
    cadena = cadena.substring(0, cadena.length()-1);
    

    if(cadena == "encender")
    {
      digitalWrite(13, HIGH); 
    }
    else if(cadena == "apagar")
    {
      digitalWrite(13, LOW);  
    }

   
        // Modulo GPRS
    
        while(A6MODULE.available()){
      Serial.write(A6MODULE.read());
       Serial.println("entro");
     }
    
     while(Serial.available()){
      A6MODULE.write(Serial.read());
      Serial.println("entro2");
     }
  
}```

No debe enviar comandos al puerto antes de dar el comando de begin()

El problema con el módulo A6 es que funciona "por default" a una velocidad de 115200, y esta velocidad es demasiado alta para SoftSerial.
Es mejor usar con este módulo una Hardware Serial.

Si, tienes razón, gracias, al final encontré otra librería y ahí funciono perfecto.

Mil gracias, Saludos.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.