Dejo este código para hacer llamadas con el módulo SIM800L, funciona también como el anterior.
#include <SoftwareSerial.h>
//SIM800 TX is connected to Arduino D8
#define SIM800_TX_PIN 8
//SIM800 RX is connected to Arduino D7
#define SIM800_RX_PIN 7
//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);
void setup()
{
//digitalWrite(9, HIGH); // Descomentar para activar la alimentación de la tarjeta por Software
//delay(1000);
//digitalWrite(9, LOW);
delay (5000); //Nos damos un tiempo para encender el GPRS y la alimentación de la tarjeta
serialSIM800.begin(19200); //Configura velocidad del puerto serie para el SIM900
Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
Serial.println("OK");
delay (1000);
serialSIM800.println("AT+CPIN=\"9446\""); //Comando AT para introducir el PIN de la tarjeta
delay(25000); //Tiempo para que encuentre una RED
}
void llamar()
{
Serial.println("Realizando llamada...");
serialSIM800.println("ATD+34625XXXX47;"); //Comando AT para realizar una llamada
delay(30000); // Espera 30 segundos mientras realiza la llamada
serialSIM800.println("ATH"); // Cuelga la llamada
delay(1000);
Serial.println("Llamada finalizada");
}
void loop()
{
llamar(); //Realiza la llamada
while (1);
}
Dejo el montaje físico de la conexión del módulo SIM800L, con el regulador de voltaje DC y el microcontrolador Arduino REV UNO.