Sim900 Modulo GSM non invia SMS

Buongiorno a tutti,
sto facendo un combinatore telefonico che mi invii SMS a determinate azioni di un gruppo elettrogeno.
Sostanzialmente il generatore mi chiude 3 contatti e ad ognuno di essi dovrebbe equivalere un SMS inviato tramiteil Modulo SIM900 e gestito dalla sua libreria.

il problema è che tutto funziona fino che rimango nel Void del Setup, infatti al finire del Setup mi invia un SMS con l' avvenuta power On della scheda.
Come entra in loop la scheda funziona e da seriale fa vedere i comandi che arrivano e partono ma non invia gli SMS

come risolvo?

posto sotto il codice

#include "SIM900.h"
#include "sms.h"
SMSGSM sms;

bool started = false;

bool tensione = false;
bool Htensione = false;

bool StartMotore = false;
bool HStartMotore = false;

bool StopMotore = false;
bool HStopMotore = false;

void setup()
{
  //Serial connection.
  Serial.begin(9600);

  // GSM setup
  digitalWrite(9, HIGH);
  delay(2000);
  digitalWrite(9, LOW);
  int trys = 0;
  Serial.println("GSM setup...");
  if (gsm.begin(2400)) {
    Serial.println("GSM OK");
    started = true;
  }
  else
    Serial.println("GSM non inizializzato ");

  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);

  if (started) {
    sms.SendSMS("3380000000", "Power ON scheda Gsm");
  }
}

void loop() {
  if (started) {
    if (digitalRead(12) == 0) { //tensione 380v
      tensione = true;
      delay(1000);
      if (tensione == true && Htensione == false) {
        Serial.println ("Tensione");
        delay(1000);
        sms.SendSMS("3380000000", "Generatore: Tensione OK!");
        Htensione = true;
      }
    } else {
      tensione = false;
      Htensione = false;
    }

    if (digitalRead(10) == 0) { //START MOTORE
      StartMotore = true;
      delay(1000);
      if (StartMotore == true && HStartMotore == false) {
        Serial.println ("Start MOTORE");
        sms.SendSMS("3380000000", "Generatore: Start Motore");

        HStartMotore = true;
      }
    } else {
      StartMotore = false;
      HStartMotore = false;
    }

    if (digitalRead(11) == 0) { //STOP MOTORE
      StopMotore = true;
      delay(1000);
      if (StopMotore == true && HStopMotore == false) {
        Serial.println ("Stop MOTORE");
        sms.SendSMS("3380000000", "Generatore: Stop Motore");
        HStopMotore = true;
      }
    } else {
      StopMotore = false;
      HStopMotore = false;
    }


  }
}