Bonjour à tous,
Nous sommes 3 élèves de terminale STI2D SIN. Notre projet pour le bac est un ordinateur de bord adaptable sur une voiture ancienne.
Pour ce projet, nous avons besoin de calculer une distance parcourue grâce aux coordonnées GPS.
Avec la bibliothèque TinyGPS++, nous réussissons à afficher les coordonnées exactes sur le moniteur série.
Seulement, pour exploiter ces coordonnées, il nous faut les mettre dans des variables. Et si on affiche ces variables sur le moniteur série, on se rend compte que nos coordonnées s'arrêtent 2 chiffres après la virgule, soit une précision bien insuffisante.
Nous n'arrivons par à trouver pourquoi les coordonnées sont arrondies à 2 chiffres après la virgule, si quelqu'un a une idée, ça nous aiderait beaucoup
Matériel : Arduino MEGA et GPS SIM28 Grove.
Bonne journée et bonne année à tous !
#include <TinyGPS++.h>
#include <rgb_lcd.h>
rgb_lcd lcd;
TinyGPSPlus gps;
float lati = 0;
float lon = 0;
int alt = 0;
int vitesse = 0;
void setup()
{
Serial.begin(9600);
Serial3.begin(9600);
lcd.begin(16,2);
}
void loop()
{
// put your main code here, to run repeatedly:
while (Serial3.available()>0)
{
int c = Serial3.read();
if (gps.encode(c))
{
//POSITION
Serial.println(gps.location.lat(), 6); // Latitude in degrees (double) //OK
Serial.println(gps.location.lng(), 6); // Longitude in degrees (double) //OK EGALEMENT
lati = gps.location.lat(), 6;
lon = gps.location.lng(), 6;
Serial.println(lati); //N'AFFICHE QUE 2 CHIFFRES APRES LA VIRGULE
Serial.println(lon); //IDEM
//ALTITUDE
alt = gps.altitude.meters();
Serial.print("ALT="); Serial.println(alt);
vitesse = gps.speed.kmph();
Serial.print("V="); Serial.println(gps.speed.kmph()); // Speed in kilometers per hour (double)
lcd.clear();
lcd.print(vitesse);
}
}
}