[Résolu] Chaine de caractères

Bonjour,

Quelqu'un pourrait-il, stp, m'expliquer pourquoi le code 1 marche et pas le 2.
En fait, je souhaite "concatener' une chaine de caractères avec des int à l'intérieur, exemple :

&annee=variable annee+&mois=variable mois ... ainsi de suite.
Le résultat escompté est sous cette forme : annee=2015&mois=04&jour=01&heure=10

le code 1 qui fonctionne bien

  stringUne = String("&mois=");
  stringDeux = String("&jour=");
  stringTrois = String("&heure=");
  stringQuatre = String("&minutes=");
  stringCinq = String("&G0=");
  stringSix = String("&G1=");
  stringSept = String("&G2=");
  stringHuit = String("&G3=");
  stringNeuf = String("&G4=");
  stringDix = String("&G5=");
  stringOnze = String("&T0=");
  stringUrl = annee + stringUne + mois + stringDeux + jour + stringTrois + heure + stringQuatre + minutes + stringCinq + Irms1 + stringSix + Irms2 + stringSept + Irms3 + stringHuit + Irms4 +  stringNeuf + Irms5 + stringDix + Irms6 + stringOnze + Vrms;

me retourne un résultat correct .

Mais le code 2

  sprintf(buffer, "%04d%&mois=%02d%&jour=%02d%&heure=%02d%&minutes=%02d%&G0=%02d%&G1=%02d%&G2=%02d%&G3=%02d%&G4=%02d%&G5=%02d&T0=%03%", annee, mois, jour, heure, minutes, Irms1, Irms2, Irms3, Irms4, Irms5, Irms6, Vrms);

me retourne que la première valeur à savoir dans cette exemple 2015.

Le buffer est déclaré comme

static const byte BUFFER_SIZE = 128;
char buffer[BUFFER_SIZE];

Bon, je suis pas le roi du code, ni le prince d'ailleurs :smiley: , mais j'essaie d'apprendre. Désolé si la question n'est pas top.

Merci d'avance,

Jean-Michel.

Salut,

Y'a des % en trop.

sprintf(buffer, "%d&mois=%d&jour=%d&heure=%d&minutes=%d&G0=%d&G1=%d&G2=%d&G3=%d&G4=%d&G5=%d&T0=%d", annee, mois, jour, heure, minutes, Irms1, Irms2, Irms3, Irms4, Irms5, Irms6, Vrms);

Par contre s'il y a des float oublis : ce n'est pas pris en charge sur Arduino (ça boufferait plus de 16ko de mémoire). Astuce vu que tu envoi sur un serveur : tu multiplies par une puissance de 10 équivalente au nombre de chiffre après la virgule que tu veux. Ensuite côté serveur t'a plus qu'à rediviser

Salut et merci beaucoup B@tto.

Tout fonctionne. J'avais bêtement recopié du code sans trop me poser de question...

Merci pour l'astuce de *10 et /10 avec le site en Php.

En fait, ce sont des Int. J'essaie de monitorer la consommation électrique avec 5 capteurs à effet de Hall, et je me contente de chiffre entier pour la tension, l'intensité et la puissance. Je dois encore réfléchir au coefficient pour prendre en compte les différents éléments et calculer une vraie puissance.

Il me reste à régler deux problèmes d'affichage sur un écran TFT. Le premier est du à un clignotement toutes les secondes (mais pas très grave, car cet écran ne sera allumé que brièvement lors de l'appui sur un bouton poussoir). Le deuxième est l'affichage de la tension sous forme entière (sans la virgule et ce qu'il y a après). Il faut que je regarde quel fonction permet de passer un integer en entier.

Après, mise en boite.

Merci encore pour les réponses.

Jean-Michel.