Je suis en train de faire un morceaux de code avec un shield GPS.
Je capture la latitude et la longitude et je la stock dans un double et je voudrais les mettres dans un char[]. Je fais donc un sprintf mais il marche pas comme je veux.
J'ai trouvé un bout de code et quand je fais un :
Serial.println(lat,7);
Il m'affiche la bonne latitude, j'ai :
Lat:45.5249710
sprintf() ne prend pas les float en charge sur Arduino, pour la simple raison que cette prise en charge inclurait des librairies qui occuperait plus de 15 ko de mémoire ...
Il faut soit jouer "manuellement", en récupérant la partie entière, puis la soustraire au nombre d'origine, envoyer un '.' puis multiplié ce qui reste par le nombre de chiffre après la virgule souhaitée et envoyer.
Sinon essaye dtostrf(), mais attention il met des espaces devant le nombre si tu as pris un emplacement trop large.
J'ai justement bosser sur ce sujet ce week end (envoi de coordonnées GPS sur un serveur), les espaces rajoutés faisait tout planter