Bonjour,
pour un projet , j'ai besoin d'affiché différente info de type différent sur un écran tft , pour simplifié , je passe par sprintf , et je me retrouve avec un truc étrange:
si je tente d'afficher un int et un string... le string ne s'affiche pas.
exemple :
"sprintf(affichage_module2,"L:%d P:%s hPa",luminosite,temp3)"
m'affiche:
"L:124 P: hPa"
Si j’enlève le %d , (et luminosite) le string s'affiche bien :s
voici le code complet:
// variable pour test affichage
int jour=30;
int mois=04;
int annee=16;
int heure=19;
int minute=20;
int seconde=30;
long delai_maj=60000;//toutes les minutes
long derniere_maj_info=0;
long derniere_maj_heure=0;
char *nom_module[]={"Salon","Exterieur","Cuisine","Chambre1","Chambre2"};
int numDuModule=0;
float temperature=20.35;
float humidite=102.3;
long luminosite=124;
double pression=1025.63;
bool pluie=0;
void setup() {
Serial.begin(9600);
char date_heure[18];
sprintf(date_heure,"%2d/%2d/%2d %2d:%2d:%2d",jour,mois,annee,heure,minute,seconde);
Serial.println(date_heure);//tft.print(date_heure);
//affichage des modules
char affichage_module1[30];
char affichage_module2[30];
char temp[6];
char temp2[7];
char temp3[5];
dtostrf(pression,7,2,temp3);
Serial.println(temp3);
dtostrf(temperature,5,2,temp);
dtostrf(humidite,6,1,temp2);
sprintf(affichage_module1,"%s:T:%s dC H:%s%% ",nom_module[numDuModule],temp,temp2);
sprintf(affichage_module2,"L:%d P:%s hPa",luminosite,temp3);// Pluie
Serial.println(affichage_module1);
Serial.println(affichage_module2);
}
void loop() {
// put your main code here, to run repeatedly:
}
Merci d'avance