Why sim800l didnt call my phone ?

Hello all !
I want to make a call using sim800l connecting to arduino uno as in picture
sim800l with arduino

This is the code

<SoftwareSerial.h>

// Define the software serial pins for communication with SIM800L
SoftwareSerial sim800(10, 11); // RX, TX

// Your phone number in international format
String yourPhoneNumber = "+123456789";

void setup() {
  // Start communication with SIM800L
  sim800.begin(9600);
  // Start serial communication with the computer for debugging
  Serial.begin(9600);
  
  // Wait for the SIM800L to initialize
  delay(1000);
  Serial.println("GSM SIM800L Initialized");
  Serial.println("Enter character for control option:");
  Serial.println("m : to send message");
  Serial.println("c : to make a call");
  Serial.println();
  delay(100);
}

void loop() {
  if (Serial.available() > 0) {
    switch (Serial.read()) {
      case 'm':
        SendMessage();
        break;
      case 'c':
        MakeCall();
        break;
    }
  }
}

void SendMessage() {
  // Set SMS text mode
  sim800.println("AT+CMGF=1");
  delay(1000);
  
  // Replace with your phone number in international format
  sim800.print("AT+CMGS=\"");
  sim800.print(yourPhoneNumber);
  sim800.println("\"");
  delay(1000);
  
  // Replace with the message you want to send
  sim800.println("Hello from SIM800L!");
  delay(100);
  
  // End of message character (Ctrl+Z)
  sim800.println((char)26);
  delay(1000);
}

void MakeCall() {
  // Make a call to the specified number
  sim800.print("ATD");
  sim800.print(yourPhoneNumber);
  sim800.println(";");
  Serial.println("Calling...");
  
  delay(20000); // Wait for call to establish (adjust delay as needed)
  
  sim800.println("ATH"); // Hang up the call
  Serial.println("Call hung up");
}

Can you help why i didnt recieve the call when i press "c".
It apear in serial monitor "Calling..." and then "Call hung up" .

Please can you help me where is the problem ?

you probably need a dedicated power supply for your SIM800L (it needs a pick of 2 amps !)
also the voltage is 3.7 V to 4.2 V - double check if your board has a voltage converter before sending 5V

i used battery lithium 3.7v but again it didnt respond.

I used this code :

#include <SoftwareSerial.h>

// Define the software serial pins for communication with SIM800L
SoftwareSerial sim800(2, 3); // RX, TX

void setup() {
  // Start serial communication with SIM800L
  sim800.begin(9600);
  
  // Start serial communication with Arduino IDE Serial Monitor
  Serial.begin(9600);
  Serial.println("Starting SIM800L communication...");

  delay(1000); // Wait for SIM800L to stabilize
  
  // Check if SIM800L is responding
  sendATCommand("AT");
  delay(1000);
  
  // Additional AT commands for debugging
  sendATCommand("AT+CSQ"); // Check signal quality
  delay(1000);
  sendATCommand("AT+CREG?"); // Check network registration status
  delay(1000);
}

void loop() {
  // Your main code here
}

// Function to send AT commands and print the response
void sendATCommand(const char* command) {
  Serial.print("Sending command: ");
  Serial.println(command);
  sim800.println(command);
  delay(1000);
  
  Serial.print("Response: ");
  while (sim800.available()) {
    Serial.write(sim800.read());
  }
  Serial.println();
}

But it didnt get any respond in serial monitor.
Any help please ?`

can you share a drawing of your circuit ?

1

This is new connection using addition battery (3x 1.5 v AA)

Any help please?
My number in sim800l is connected to the network because the flash blink every 3 second, but why it didnt respond to arduino uno ?

Some modules are poorly designed and don't include the power adaptation and require a solid 4.2V...

see this article

PS = I suppose you have an antenna ?

yes ! i have an anntena