Problema con comando ATD en modulo Ai thinker A7

Buenas tardes a todos, estoy aprendiendo un poco el mundo del GSM, GRPRS y GPS y no logro hacer que mi modulo realize una llamada.
El codigo es el siguiente

#include <SoftwareSerial.h>


SoftwareSerial A7Module(7, 8); // RX TX


void setup() {
  //digitalWrite(9, HIGH); // Uncomment to enable card power by Software
  //delay(1000);
  //digitalWrite(9, LOW);
  delay (5000);  //Turn on GPS and Sim card
  A7Module.begin(19200);
  Serial.begin(19200);
  Serial.println("OK");
  delay (1000);
  //   A7Module.println("AT + CPIN = \"XXXX\"");  //AT command to enter the PIN of the card
  delay(25000);  //Time to find a network

}

void loop() {
  


  
  // put your main code here, to run repeatedly:
  Call();
  while (1);

}

void Call()
{
  Serial.println("Making call...");
  A7Module.println("ATD ********;");  //AT commando to make a call
  delay(30000);  //Wait 30 seconds while making the call
  A7Module.println();
  A7Module.println("ATH");  //  end call
  delay(1000);
  Serial.println("Call end");
}

Si alguien puede darme una mano, estaré agradecido. Saludos

Para darte una mano sería bueno que publiques el manual del A7. Yo lo he estado mirando y la información es escasa o esta en chino. Tal vez tu tienes mejor información, asi que poner el enlace del datasheet o algun otro manual que sirva será bienvenido para poder colaborar con tu problema.

En mi página www.jopapa.me en cosas Arduino tienes un pequeño tutorial, que por cierto se encuentra también buscando en este mismo foro.

Ese es el manual que estaba usando, entiendo que debo poner un level converter entre el arduino y mi modulo.
A parte probé el siguiente código para enviar SMS y funciona a la perfección, no se por que para llamar tengo problemas

#include <SoftwareSerial.h>


SoftwareSerial A7Module(7, 8); // RX TX


void setup() {
  //digitalWrite(9, HIGH); // Uncomment to enable card power by Software
  //delay(1000);
  //digitalWrite(9, LOW);
  delay (5000);  //Turn on GPS and Sim card
  A7Module.begin(19200);
  Serial.begin(19200);
  Serial.println("OK");
  delay (1000);
  //   A7Module.println("AT + CPIN = \"XXXX\"");  //AT command to enter the PIN of the card
  delay(25000);  //Time to find a network

}

void loop() {
  

  // put your main code here, to run repeatedly:

    Message_sms();
}



void Message_sms()
{
  Serial.println("Sending SMS...");
  A7Module.print("AT+CMGF=1\r");  //Set text mode to send or receive messages
  delay(1000);
  A7Module.println("AT+CMGS=\"**********\"");  //Number to send message
  delay(1000);
  A7Module.println("SMS enviado desde arduino.");  // Text of the SMS
  delay(100);
  A7Module.println((char)26); //Ending comand ^Z
  delay(100);
  A7Module.println();
  delay(5000);  // Wait to send sms
  Serial.println("SMS sent");
}

y a tu pagina Jopapa no se puede acceder.
Muchas gracias.

Este es el modulo que tengo

|500x500

Como que no puedes acceder.
Yo pude y este es el código que jopapa propone

//Llamada de teléfono
void setup(){
Serial.begin(9600);   
delay(200);
Serial.println("AT");
delay(1000);
Serial.println("ATD65911****");   //Marca el número
delay(15000);               //Espera establecer la llamada y sonar
Serial.println("ATH");    //Corta la llamada
}

void loop()
{

}

No estoy pasando el numero de PIN, no se si eso tendrá que ver (me llama la atención que para mensajes funcione bien) y tampoco estoy enviándole el comando AT antes de llamar. son las únicas diferencias que veo. De todos modos, muchas gracias por la ayuda.

Cual es el número de PIN? El ejemplo habla del número al que quieres llamar.

Probaste con el ejemplo de la página de jopapa que yo te reproduje porque dijiste que no podías entrar? Deja de lado el código tuyo que no funciona. probaste este?

Numero de pin me refiero a esto en el setup de mi código

//   A7Module.println("AT + CPIN = \"XXXX\"");  //AT command to enter the PIN of the card

Y el programa de Jopapa lo probé y tampoco puedo realizar la llamada.

Veamos algo mas básico.
Estas recibiendo OK a cada comando AT que envías al A7?

No, Lo que escribo por serial es lo mismo que me muestra por serial.
Mando AT y recibo AT en lugar de OK.

#include <SoftwareSerial.h>
SoftwareSerial A7Module(7, 8); //Seleccionamos los pines 7 como Rx y 8 como Tx

void setup()
{
  A7Module.begin(19200);
  Serial.begin(19200);
  delay(100);
}

void loop()
{
  //Envíamos y recibimos datos
  if (Serial.available() > 0) {
    char a;
    a = Serial.read();
    A7Module.write(a);
  }
  if (A7Module.available() > 0) {
    char b;
    b = A7Module.read();
    Serial.write(b);
  }
}

Entonces esta mal conectado. Dime como son tus conexiones.

Arduino uno Pin 7 ---> (High)TX level converter (Low)TX level converter----->UTXD Pin 8 ---> (High)RX level converter (Low)RX level converter ----->URXD

Level Converte HV a pin 5V de arduino LV a pin 3,3V de arduino GND a GND de arduino

A7 Modulo. Alimentacion externa 5V Pin 5V conectado con pin 5V de arduino y todas las tierras conectadas entre ellas

Bueno no se que arduino usas. Pero TX va con RX AT Serial TXD del A7 va con RX del Arduino AT Serial RXD del A7 va con TX del Arduino.

GND unido en ambos casos

|499x500

Si ademas usas level shifter, que esten mirando como corresponde.