Bonjours à tous,
Dans le cadre d'un projet futur, j'essaie d'appréhender le fonctionnement de la librairie TinyGPS, pour ce faire j'envoie des trames NMEA sur la voie série à ma carte Arduino UNO R3, j'utilise l'IDE officiel en v1.6.5 sous Mac OS X.
J'ai écris ce bout de code ci dessous et en bref, quand j'envoie une trame NMEA sur la voie série, j'espère en retour l'affichage de la latitude et longitude à la fois en retour sur le moniteur série et sur le lcd.
Seulement, ça ne fonctionne pas et me renvoie:
lat: 999999999
lon: 999999999 (que ce soit sur lcd et moniteur)
et forcement c'est renvoyé autant de fois que la trame contient de caractère, c'est à dire environ 80 fois.
J'avoue avoir essayer plein de solution mais la je sèche complètement.
Est ce que la lib requiert forcement de passer par un SoftSerial?
Ci dessous mon code:
Merci d'avance de l'aide que vous pourriez m'apporter
#include <LiquidCrystal.h>
#include <TinyGPS.h>
LiquidCrystal lcd(11,10,9,8,7,6); // Declaration lcd 16x2
TinyGPS gps; // creation objet GPS
long lat,lon; // variable stockage latitude et longitude
void setup() {
Serial.begin(9600); // ouverture voie serie
lcd.begin(16,2); //initialisation du lcd 16x2
}
void loop()
{
while (Serial.available())
{
//int c = Serial.read();
//gps.encode(c);
gps.encode(Serial.read());
delay(10);
gps.get_position(&lat,&lon); // parse latitude et longitude
Serial.println("Position: ");
Serial.print("lat: ");Serial.print(lat);Serial.println(" ");// print latitude
Serial.print("lon: ");Serial.println(lon); // print longitude
lcd.print("lat: ");lcd.print(lat);// print latitude sur lcd
lcd.setCursor(0,1);
lcd.print("lon: ");lcd.print(lon); // print longitude sur lcd
}}
//TRAME NMEA D'ESSAI
//$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E
//$GPGGA,123519,4807.038,N,01131.324,E,1,08,0.9,545.4,M,46.9,M, , *42