Problème de branchments/erreurs de code

Bonjour ,
je fait un projet personnel qui nécessite des données gps et des vitesses ,
pour cela , j'ai utilisée un moduler neo 6m que j'ai tester avec u-center ( il fonctionnait tres bien)
et un module ecriteur/lecteur micro sd (qui fonctionne correctement) , mon problème est que lorsque je lance mon programme ci dessous , rien ne ce passe , les cordonnées ne sont pas ecrite , le fichier ne se crée pas et étant débutant je comprends pas pourquoi est ce que cela pourrait venir des branchments (qui me semble conforme ) ou à cause d'une erreur de code , merci d' avance si vous avez besoin d'autre precision n'hesiter pas .

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <SPI.h>
#include <SD.h>

static const int RXPin = 5, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(TXPin, RXPin);

// The file on the SD card
File dataFile;

void setup() {
  Serial.begin(9600);
  ss.begin(GPSBaud);
  SD.begin(4);
}

void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0) {
    gps.encode(ss.read());
    if (gps.location.isUpdated()) {
      // Open the file for writing (append mode)
      dataFile = SD.open("data.txt", FILE_WRITE);

      // Write the GPS data to the file
      dataFile.print("Latitude= ");
      dataFile.print(gps.location.lat(), 6);
      dataFile.print(" Longitude= ");
      dataFile.println(gps.location.lng(), 6);

      dataFile.print("Raw latitude = ");
      dataFile.print(gps.location.rawLat().negative ? "-" : "+");
      dataFile.println(gps.location.rawLat().deg);
      dataFile.println(gps.location.rawLat().billionths);

      dataFile.print("Raw longitude = ");
      dataFile.print(gps.location.rawLng().negative ? "-" : "+");
      dataFile.println(gps.location.rawLng().deg);
      dataFile.println(gps.location.rawLng().billionths);

      dataFile.print("Raw date DDMMYY = ");
      dataFile.println(gps.date.value());

      dataFile.print("Year = ");
      dataFile.println(gps.date.year());
      dataFile.print("Month = ");
      dataFile.println(gps.date.month());
      dataFile.print("Day = ");
      dataFile.println(gps.date.day());

      dataFile.print("Raw time in HHMMSSCC = ");
      dataFile.println(gps.time.value());

      dataFile.print("Hour = ");
      dataFile.println(gps.time.hour());
      dataFile.print("Minute = ");
      dataFile.println(gps.time.minute());
      dataFile.print("Second = ");
      dataFile.println(gps.time.second());
      dataFile.print("Centisecond = ");
      dataFile.println(gps.time.centisecond());

      dataFile.print("Raw speed in 100ths/knot = ");
      dataFile.println(gps.speed.value());
      dataFile.print("Speed in knots/h = ");
      dataFile.println(gps.speed.knots());
      dataFile.print("Raw course in 100ths degree = ");
      dataFile.println(gps.course.value());
      dataFile.print("Course in degrees = ");
      dataFile.println(gps.course.deg());
      // Close the file
      Serial.write(dataFile.read());
      dataFile.close();
    }
  }
}

pour les branchement ont a :
-SD
5v
GND
4
11
12
13

-GPS
GND
5V
3
5

Bonjour @azenn,

A quoi sert votre pile 9v ?
A rien je pense ?

Bonne journée.

non elle sert d'alimentation , car ce branchements doit etre utilisèes sans ordinateur ,
bonne journée a vous aussi

hello
erreur ou pas ? :thinking: :innocent:

non, pas erreur, c'est le serial pour le gps :weary:

On teste d'abord le GPS (déconnectez la carte SD) :

Il y a une inversion, il faut :
SoftwareSerial ss(RXPin , TXPin );
Essayez avec RXPin = 2 et TXPin = 3.
Du coup la pin 2 de la UNO doit-être connectée sur TX du GPS et la 3 sur RX

Essayez ce code :

#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
   This sample sketch demonstrates the normal use of a TinyGPSPlus (TinyGPSPlus) object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/
static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPSPlus object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
  Serial.begin(115200);
  ss.begin(GPSBaud);

  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPSPlus with an attached GPS module"));
  Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}

void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}

void displayInfo()
{
  Serial.print(F("Location: ")); 
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.println();
}

Dites moi ce que vous voyez dans le moniteur série qui doit-être sur 115200 ?

Après vérification , l erreur que vous soulignez était bien un des problèmes , le logiciel était incompatible avec ma version actuelle de windows , j ai donc alors choisis de modifier le logiciel et remedoler le code maintenant tout marche !
je vous remercie encore énormèment devotre temps , je vous souhaite une bonne fin de journée et si vous êtes interessée par le programme complet le voici

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <SPI.h>
#include <SD.h>

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

// The file on the SD card
File dataFile;

void setup() {
  Serial.begin(9600);
  ss.begin(GPSBaud);
  SD.begin(5);
}

void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0) {
    gps.encode(ss.read());
    if (gps.location.isUpdated()) {
      // Open the file for writing (append mode)
      dataFile = SD.open("data.txt", FILE_WRITE);

      // Write the GPS data to the file
      dataFile.print("Latitude= ");
      dataFile.print(gps.location.lat(), 6);
      dataFile.print(" Longitude= ");
      dataFile.println(gps.location.lng(), 6);

      dataFile.print("Raw latitude = ");
      dataFile.print(gps.location.rawLat().negative ? "-" : "+");
      dataFile.println(gps.location.rawLat().deg);
      dataFile.println(gps.location.rawLat().billionths);

      dataFile.print("Raw longitude = ");
      dataFile.print(gps.location.rawLng().negative ? "-" : "+");
      dataFile.println(gps.location.rawLng().deg);
      dataFile.println(gps.location.rawLng().billionths);

      dataFile.print("Raw date DDMMYY = ");
      dataFile.println(gps.date.value());

      dataFile.print("Year = ");
      dataFile.println(gps.date.year());
      dataFile.print("Month = ");
      dataFile.println(gps.date.month());
      dataFile.print("Day = ");
      dataFile.println(gps.date.day());

      dataFile.print("Raw time in HHMMSSCC = ");
      dataFile.println(gps.time.value());

      dataFile.print("Hour = ");
      dataFile.println(gps.time.hour());
      dataFile.print("Minute = ");
      dataFile.println(gps.time.minute());
      dataFile.print("Second = ");
      dataFile.println(gps.time.second());
      dataFile.print("Centisecond = ");
      dataFile.println(gps.time.centisecond());

      dataFile.print("Raw speed in 100ths/knot = ");
      dataFile.println(gps.speed.value());
      dataFile.print("Speed in knots/h = ");
      dataFile.println(gps.speed.knots());
      dataFile.print("Raw course in 100ths degree = ");
      dataFile.println(gps.course.value());
      dataFile.print("Course in degrees = ");
      dataFile.println(gps.course.deg());
      dataFile.print("Speed in m/s = ");
      dataFile.println(gps.speed.mps());
      dataFile.print("Raw course in degrees = "); 
      dataFile.println(gps.course.value()); 
      dataFile.print("Raw altitude in centimeters = "); 
      dataFile.println(gps.altitude.value()); 
      dataFile.print("Altitude in meters = "); 
      dataFile.println(gps.altitude.meters()); 
      dataFile.print("Altitude in miles = "); 
      dataFile.println(gps.altitude.miles()); 
      dataFile.print("Altitude in kilometers = "); 
      dataFile.println(gps.altitude.kilometers()); 
      dataFile.print("Altitude in feet = "); 
      dataFile.println(gps.altitude.feet()); 
      dataFile.print("Number os satellites in use = "); 
      dataFile.println(gps.satellites.value()); 
      dataFile.print("HDOP = "); 
      dataFile.println(gps.hdop.value()); 
      dataFile.print("------------------------------------------------------------------------------------------------------------------------");
      // Close the file
      Serial.write(dataFile.read());
      dataFile.close();
    }
  }
}

Tant mieux :wink:
Bonne soirée.

@azenn,
Je ne sais pas quelle est la nature de votre projet mais j'ai oublié de vous dire qu'une alimentation avec une pile de 9V c'est pas le top.
Je vous donne un lien sur ce sujet : hbachetti.
Si l'encombrement a de l’importance, la carte NANO est bien plus petite que la UNO avec les mêmes caractéristiques.

Bonne continuation.

Il y a même encore mieux : la Pro Mini ! :wink:
Mais bon ça fait bcp de pin en trop...
Pandaroux007 :fox_face:

Bonsoir @pandaroux007,

C'est vrai qu'elle est pas mal celle-là aussi surtout en 3.3V :wink:

Bonne soirée.

Je l'aime beaucoup, depuis que @al1fch me l'a fait découvrir ici :wink:

Bonne soirée.

Cordialement
Pandaroux007 :fox_face:

Bonne soirée @pandaroux007 :wink:

On réalise une expérience qui durera 2min max , on souhaite juste retracer la trajectoire d'un objet ayant une lvitesse >100km/h et essayer de créer nous même un modèle qui nous permettrai de prédire la trajectoire en dépendant de différents facteurs . et pour le format , on a prévu un compartiments a la taille du module mais merci beaucoup !
Bonne fin de journée et merci beaucoup encore

Bonne continuation :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.