Difficultés dans la liaison de deux programmes

Bonjour, Bonsoir,

Etant débutant de le monde Arduino, je me retrouve bloqué dans la réalisation d'une liaison entre un programme d'accéléromètre 3 axes (accéléromètre MR003-002.1) et un programme d'envoi de coordonnées GPS par SMS (Shield GPS/GPRS/GSM TEL0051). Pour ce fait, j'aimerais faire en sorte que le programme d'envoi des coordonnées GPS par SMS se lance lorsque l'accéléromètre aura capté une valeur égale ou supérieure à 1.50 en valeur analogique. Pour cela j'ai réalisé ce programme :

#include "gps_gsm_sim908Serial0.h"

const int analogInX = A0;
const int analogInY = A1;
const int analogInZ = A2;
const int sleep = 2;

float valueX = 0;
float valueY = 0;
float valueZ = 0;

void setup () {
  gps_init ();
  Serial.begin (9600);
  pinMode(sleep, OUTPUT);
  digitalWrite(sleep, HIGH);
  analogReference(EXTERNAL);
  start_gps ();
}

void loop() {
  valueX = (analogRead(analogInX) * (3.3 / 1023.0));
  valueY = (analogRead(analogInY) * (3.3 / 1023.0));
  valueZ = (analogRead(analogInZ) * (3.3 / 1023.0));

  Serial.print("X = ");
  Serial.print(valueX);
  Serial.print("v  Y = ");
  Serial.print(valueY);
  Serial.print("v  Z = ");
  Serial.print(valueZ);
  Serial.println("v");

  delay(200);
}

if (valueY >= 1.50) {

    int stat = gps_get_gga ();

  if (stat == 0 || stat == 1) {
    if (gps_gga_is_fix ()) {
      gsm_set_numble ("+33000000000");
      gsm_send_message (gps_gga_utc_s ());
      gsm_send_message (gps_gga_EW ());
      gsm_send_message (gps_gga_NS ());
      gsm_send_message (gps_gga_lat_s ());
      gsm_send_message (gps_gga_long_s ());
      gsm_end_send ();
      while (1);
    }
  }

  switch (stat) {
  case 0:
#ifdef DEBUG
    Serial.println ("data checksum is ok");
#endif
    break;
  case 1:
#ifdef DEBUG
    Serial.println ("GPGGA ID is error!");
#endif
    break;
  case 2:
#ifdef DEBUG
    Serial.println ("data is error!");
#endif
    break;
  }

#ifdef DEBUG
  Serial.println ("$GPGGA data:");
  gps_gga_print ();
#endif

    if (gps_gga_is_fix () == 0)
   Serial.println ("can't fix! please go outside!");
   else {
   Serial.println ("ok! is fix!");

   Serial.println ("gps_gga_utc_hh ()");
   Serial.println (gps_gga_utc_hh ());
   Serial.println ("gps_gga_utc_mm ()");
   Serial.println (gps_gga_utc_mm ());
   Serial.println ("gps_gga_utc_ss ()");
   Serial.println (gps_gga_utc_ss ());

   Serial.println ("gps_gga_NS ()");
   Serial.println (gps_gga_NS ());
   Serial.println ("gps_gga_EW ()");
   Serial.println (gps_gga_EW ());

   Serial.println ("gps_gga_lat ()");
   Serial.println (gps_gga_lat (), 6);
   Serial.println ("gps_gga_long ()");
   Serial.println (gps_gga_long (), 6);
   Serial.println ("gps_gga_HDOP ()");
   Serial.println (gps_gga_HDOP (), 6);
   Serial.println ("gps_gga_MSL ()");
   Serial.println (gps_gga_MSL (), 6);
   Serial.println ();
   }

}
}

Cependant, l'envoi du message n'a pas lieu. Puis j'ai remarqué que dans le moniteur série il me mettait : "can't fix! please go outside!" lorsque la valeur était égale ou supérieure à 1.50V que ce soit en intérieur ou en extérieur bien loin de quelconque bâtiment.

Je m'en remet donc à vous, j'aimerais savoir si il s'agit d'un problème au niveau d'un des deux programmes (accéléromètre ou GPS par SMS, ou les deux), si il s'agit d'un problème au niveau de la liaison des deux programmes ou bien si il s'agit de quelque chose d'autre.

Je vous remercie d'avance pour votre aide et de laisser de votre temps libre pour un débutant comme moi.