Projet GPS + TFT + capteurs

Bonjour à tous,

Voilà mon projet en cours :
J'ai besoin de faire afficher sur un TFT de 3.2" les infos d'un GPS, capteur I2C à base BMP180(GY68)
Si j'affiche seulement toutes les infos GPS (Date, Heure, Longitude, latitude) sur le TFT il n'y a pas de soucis.
Si j'affiche seulement les infos du GY68 (pression et température) pas de soucis.

Par contre si je fais afficher à la fois les infos du capteur et celles du GPS là c'est la cata' !!!
les infos du capteur prennent le dessus sur celle du GPS.

Y a t'il une relation de priorité entre le bus I2C et l'UART3 ?

Configuration matérielle :

  • Arduino DUE
  • Ecran TFT 3.2" 320*480 * shhield pour Mega librairie UTFT
  • GPS sur Rx3
  • Capteur GY68 sur pin 20 et 21 (I2C) pas de librairie utilisée

Merci par avance à tous pour votre aide.

Patrick

Normalement, il ne devrait y avoir aucun problème si tu ne cherches qu'à afficher des variables de ton code. Il suffit de les afficher aux endroits que tu veux sur ton écran.
Par contre si ta question concerne la réception des données GPS et capteur, alors c'est différent.

Es-tu sûr que tu reçois tes données correctement ? Si oui, il suffit de les afficher les unes après les autres en évitant d'en mettre plusieurs au même endroit sur l'écran.

Merci lesept pour ta réponse rapide.

j'affiche mes données les unes après les autres
je joins mon fichier .ino (si j'y arrive) pour mieux
comprendre

un bout de code explique mieux qu'un long discours

Patrick

gps_tft9486_test.ino (17.2 KB)

OK
Ces lignes affichent la température et la pression, toutes sur la ligne 40 :

  TFT320.print("Te=",300,40);
  TFT320.printNumF(Temp,1,350,40,'.',4,' ');
...
  TFT320.print("P=",20,40); 
  TFT320.printNumF(Pression,1,50,40,'.',6,' ');

Tu utilises une font de grande taille :

  TFT320.setFont(BigFont);

C'est peut-être elle qui fait que les caractères se chevauchent.

Tu écris "P=1024.0" à partir de la colonne 20, puis "Te= 12.5" à partir de 300 : peut-être que ces deux textes se chevauchent ?

De même, l'altitude et la longitude sont sur le même ligne (120) et la latitude et le locator (160).

Peux-tu montrer une photo de ce que tu obtiens sur ton écran ?

Moi aussi je suis en train de utiliser un TFT + GPS + bluetooth.
J'ai eu aussi quelque problème comme le tien.
Ce que j'ai compris ( a corriger s'il le faut):
Un écran TFT utilise beaucoup de ressource surtout si on utilise le BigFont et SevenSegNumFont.
Tu risque que ton arduino n'arrive pas à suivre les communications avec les capteurs car le GPS envois beaucoup de données.
Un autre problème que j'ai vu dans ton code est que il y a un delay(200) dans ton loop. C'est du temps perdu par ton arduino.
Mets dans ton setup tout ce qui est une constante dans ton écran comme:

TFT320.print("Te=",300,40);

Il n'y a pas besoin de le réécrire.

Si le problème est que les données du gps et du capteur sont écrites au même endroit, alors il faut suivre le post de lesept.

Bonsoir à tous,

Tout d'abord merci à ceux qui ont répondu. C'est top cool :slight_smile:

je viens de trouver d'où venait le problème
En effet il s'agit d'un problème de timing.
j'ai modifié mon code et je vous le joins au cas où çà puisse aider
d'autres personnes.

Merci encore à tous

Patrick

ps : je vous met aussi une photo du résultat.

gps_tft9486_test_i2c.ino (18 KB)