Je n'arrive pas a faire fonctionner mon gpsMKR shield

bonjour, je n'arrive pas a faire fonctionner mon arduino mkr Gps.Je l'utilise avec une arduino mkr zero officielle. voici mon code : `#include <Arduino_MKRGPS.h>


#include <SPI.h>
#include <SD.h>


void setup() {
  pinMode(4,OUTPUT);
  Serial.begin(115200);


  if (!GPS.begin(GPS_MODE_SHIELD)) {
    Serial.println("Failed to initialize GPS!");
    while (1) {
   
    digitalWrite(4,HIGH);
    delay(1000);
    
    digitalWrite(4,LOW);
       delay(1000);
    };
  }
  if (!SD.begin()) {
    Serial.println("Card failed, or not present");

    while (1) {
  
    digitalWrite(4,HIGH);
    delay(500);
    
    digitalWrite(4,LOW);
       delay(500);
    };
  }
 
    digitalWrite(4,HIGH);
    delay(1000);
    
    digitalWrite(4,LOW);

}

void loop() {



  String dataString = "";

 File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // wait for new GPS data to become available
 

  // read GPS values
  float latitude   = GPS.latitude();
  float longitude  = GPS.longitude();
  float altitude   = GPS.altitude();
  int   satellites = GPS.satellites();

  // print GPS values
  Serial.println();
  Serial.print("Location: ");
  Serial.print(latitude, 7);
  Serial.print(", ");
  Serial.println(longitude, 7);

  Serial.print("Altitude: ");
  Serial.print(altitude);
  Serial.println("m");

  digitalWrite(4,HIGH);
      
dataFile.print(latitude, 7);
dataFile.print(",");
dataFile.println(longitude, 7);

  dataFile.print(altitude);
  dataFile.print("m");

 dataFile.close();

  Serial.print("Number of satellites: ");
  Serial.println(satellites);

  Serial.println();
 
  Serial.print("a suivre");
  delay(1000);

}`

merci d'avance
enfant meme

Est-ce que les exemples fonctionnent ?

Sinon je ne vois pas bcp de code entre ces 2 commentaires

 // wait for new GPS data to become available
 

  // read GPS values

Ou est l’attente des données du gps ?

Le code de l'exemple :[https://docs.arduino.cc/tutorials/mkr-gps-shield/mkr-gps-basic] ne marche pas , j'ai laissé l'arduino branché pendant 2 heure et rien (la led devrais s'amlumer lors de la réception d'un signal )
Merci d'avance
Enfant meme

Oups pardon il manque if (GPS.available()) { du debut a la fin de la loop .

Oui, mais :

  • l'initialisation du GPS se passe bien, tu n'as pas le message "Failed to initialize GPS!" sur le terminal?
  • le GPS à une vue dégagée vers le ciel?
  • qu'est-ce que tu récupères comme message sur le terminal?

je n'obtiens pas d'erreur, seulement un envoie répété du message : a suivre

Mettre l’antenne du GPS dehors, face vers le ciel.

Je ne comprends pas, si le if (GPS.available()) { englobe du debut a la fin de la loop, comme tu l'as dit, tu devrais avoir aussi les autres messages et en particulier le nombre de satellites accrochés.
Si le nombre de satellites est 0 c'est normal que tu n'aies aucun résultat.

le nombrede gps est zero, meme au bout de 4 heure , est il possible de brancher une antenne externe?

il y a un else pour le a suivre

postez une photo du montage

Possible mais comme on a un code erroné on ne peut pas te donner d'infos plus pertinentes

#include <SPI.h>
#include <SD.h>


void setup() {
  pinMode(4,OUTPUT);
  Serial.begin(115200);


  if (!GPS.begin(GPS_MODE_SHIELD)) {
    Serial.println("Failed to initialize GPS!");
    while (1) {
   
    digitalWrite(4,HIGH);
    delay(1000);
    
    digitalWrite(4,LOW);
       delay(1000);
    };
  }
  if (!SD.begin()) {
    Serial.println("Card failed, or not present");

    while (1) {
  
    digitalWrite(4,HIGH);
    delay(500);
    
    digitalWrite(4,LOW);
       delay(500);
    };
  }
 
    digitalWrite(4,HIGH);
    delay(1000);
    
    digitalWrite(4,LOW);

}

void loop() {
if (GPS.available()) {


  String dataString = "";

 File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // wait for new GPS data to become available
 

  // read GPS values
  float latitude   = GPS.latitude();
  float longitude  = GPS.longitude();
  float altitude   = GPS.altitude();
  int   satellites = GPS.satellites();

  // print GPS values
  Serial.println();
  Serial.print("Location: ");
  Serial.print(latitude, 7);
  Serial.print(", ");
  Serial.println(longitude, 7);

  Serial.print("Altitude: ");
  Serial.print(altitude);
  Serial.println("m");

  digitalWrite(4,HIGH);
      
dataFile.print(latitude, 7);
dataFile.print(",");
dataFile.println(longitude, 7);

  dataFile.print(altitude);
  dataFile.print("m");

 dataFile.close();

  Serial.print("Number of satellites: ");
  Serial.println(satellites);

  Serial.println();
 }
  Serial.print("a suivre");
  delay(1000);

}`

➜ on peut avoir cela ? l'utilisez vous en shield ou en séparé ?

Sinon pour tester ne mêlez pas la carte SD au test... essayez ce code:

#include <Arduino_MKRGPS.h>

void setup() {
  Serial.begin(115200);
  while (!Serial) yield();
  if (!GPS.begin()) { // ou si vous l'utilisez en shield -> if (!GPS.begin(GPS_MODE_SHIELD)) {
    Serial.println("pas de GPS!");
    while (true) yield();;
  }
}

void loop() {
  if (GPS.available()) {
    float latitude   = GPS.latitude();
    float longitude  = GPS.longitude();
    float altitude   = GPS.altitude();
    float speed      = GPS.speed();
    int   satellites = GPS.satellites();

    // print GPS values
    Serial.print("Position : ");
    Serial.print(latitude, 7);
    Serial.print(", ");
    Serial.println(longitude, 7);

    Serial.print("Altitude : ");
    Serial.print(altitude);
    Serial.println("m");

    Serial.print("Vitesse au sol : ");
    Serial.print(speed);
    Serial.println(" km/h");

    Serial.print("Nombre de satellites : ");
    Serial.println(satellites);

    Serial.println();
  }
}

notez le commentaire si vous utilisez le module en shield, il faut faire

if (!GPS.begin(GPS_MODE_SHIELD)) {

virez la carte SD, virez tout le reste du montage, ne conservez que le câble I2C (il me semble long mais si c'est celui d'origine...) et testez avec le code ci dessus.

je ferais ca des que j'aurais acces a l'ordinateur( je dois modifier lecode sinon ca repetera dans le vide)

Tu n'es pas en mode shield, tu utilises l'interface I2C.

oui

j'ai tout essayé sans modifié le code et vous ai envoyé une photo d'un de mes dernier essay