Bonjour,
Voila pour expliquer rapidement, mon programme a pour but de récupérer les données GPS d'un shield DS-GPM. Donc la dessus je pense que ce que j'ai fait est bien. Mais ensuite il doit enregistrer ces données sur une carte SD dans un fichier GPX et ecrit en XML.
N'ayant pas réussi à créer un fichier sur la carte SD via l'arduino je l'ai créer depuis mon pc et le fait lire par le arduino. Mais malheureusement une fois que le programme à tourner je ne trouve aucune données sur ma carte SD et je ne comprends pas pourquoi.
#include <Wire.h>
#define GPM 0x68
#include <SPI.h>
#include <SD.h>
const byte SD_Carte = 4;
float avlat;
int Trace;
byte Address;
byte Data;
byte Data_9,Data_8,Data_7,Data_6,Data_5,Data_4,Data_3,Data_2,Data_1;
int Latitude_1, Longitude_1;
long Latitude_2, Longitude_2;
float Latitude_C, Longitude_C;
void setup() {
Wire.begin();
Serial.begin(9600);
pinMode(10, OUTPUT);
Ini_Trace();
}
void loop() {
avlat = Latitude_C;
Serial.print("Latitude :");
calcul_lat();
Serial.println(Latitude_C,6);
Serial.print("Longitude :");
calcul_long();
Serial.println(Longitude_C,6);
if(avlat != Latitude_C)
{
Crea_Trace();
}
delay(2000);
}
int Single()
{
int Value = 0;
Wire.beginTransmission(GPM);
Wire.write(Address);
Wire.endTransmission();
Wire.requestFrom(GPM, 1);
while(Wire.available() < 1);
Value = Wire.read();
return(Value);
}
double calcul_lat()
{
Address = 14;
Data_8 = Single();
Address = 15;
Data_7 = Single();
Address = 16;
Data_6 = Single();
Address = 17;
Data_5 = Single();
Address = 18;
Data_4 = Single();
Address = 19;
Data_3 = Single();
Address = 20;
Data_2 = Single();
Address = 21;
Data_1 = Single();
Latitude_1=(Data_8*10+Data_7);
Latitude_2=(Data_6*1E5+Data_5*1E4+Data_4*1E3+Data_3*1E2+Data_2*1E1+Data_1);
Latitude_2=(Latitude_2/60);
Latitude_C = (Latitude_1+(Latitude_2*1E-4));
return(Latitude_C);
}
double calcul_long()
{
Address = 23;
Data_9 = Single();
Address = 24;
Data_8 = Single();
Address = 25;
Data_7 = Single();
Address = 26;
Data_6 = Single();
Address = 27;
Data_5 = Single();
Address = 28;
Data_4 = Single();
Address = 29;
Data_3 = Single();
Address = 30;
Data_2 = Single();
Address = 31;
Data_1 = Single();
Longitude_1=(Data_9*1E2+Data_8*10+Data_7);
Longitude_2=(Data_6*1E5+Data_5*1E4+Data_4*1E3+Data_3*1E2+Data_2*1E1+Data_1);
Longitude_2=(Longitude_2/60);
Longitude_C = (Longitude_1+(Longitude_2*1E-4));
return(Longitude_C);
}
void Ini_Trace()
{
File fichier = SD.open("Trace.gpx");
fichier.println("<?xml version='1.0' encoding='ISO-8859-1'?>");
fichier.println("<gpx version='1.1'>");
fichier.println();
}
void Crea_Trace()
{
File fichier = SD.open("Trace.gpx");
Trace = Trace+1;
fichier.print("<wpt lat='");
fichier.print(Latitude_C,6);
fichier.print("' lon='");
fichier.print(Longitude_C,6);
fichier.println("'>");
fichier.print("<name>Trace");
fichier.print(Trace);
fichier.println("</name>");
fichier.println("</wpt>");
fichier.println();
Serial.println("donnees sauvgardees");
Serial.println();
}
Merci d'avance pour votre aide.