Bonjour a tous , petite précision je suis débutant.
J ai une petit question je souhaite faire évoluer une couleur en fonction d une mesure
Mon retour dans mon serial print fonctionne parfaitement .Voici la ligne que je cherche a modifié ' ici la couleur red
dans mes init : int colorpower = "GREEN"; // color bar battery
dans mon setup : colorpower="GREEN"; // initialisation de la valeur de colorpower à GREEN
tft.fillRect(60,7,8,12,ST7735_RED);
j ai essayer ceci
tft.fillRect(60,7,8,12,"ST7735_"&&"colorpower");
Merci a vous
if(u_mess < 11){
colorpower="RED";
//Serial.print("RED");
}
if(u_mess <= 13){
colorpower="ORANGE";
//Serial.print("ORANGE");
}
if(u_mess >= 13){
colorpower="GREEN";
//Serial.print("GREEN");
}
Serial.print (colorpower);
if(u_mess >= 9){
//tft.fillRect(60,7,8,12,"ST7735_"&&"colorpower");
tft.fillRect(60,7,8,12,ST7735_RED);
} else {
tft.fillRect(60,7,8,12,ST7735_BLACK);
bonsoir,
ST7735_RED ou ST7735_BLACK sont ce qu'on appelle des macros, qui sont définies dans le corps de la bibliothèque de fonctions que tu utilises, fournie par le "créateur" du TFT/LCD dont tu te sers.
tu ne peux donc pas "recréer" ces noms en construisant des chaînes de caractères, il te faut les utiliser tels quels.
si tu veux utiliser une couleur prédéfinie, tu dois utiliser directement son nom, sinon il faut que tu "calcules" le code correspondant aux différentes valeurs de rouge, vert et bleu, et construire le code qui convient pour appeler cette teinte.
je ne connais pas la bibliothèque que tu utilises (tu ne la mentionnes même pas) mais un exemple : pour un codage couleur "traditionnel" en RGB-565, c'est-à-dire 5 bits pour le rouge, 6 bits pour le vert, et 5 bits pour le bleu (soit 16 bits au total) le code binaire correspondant, en 16 bits, pour du vert au maximum d'intensité, sans bleu ni rouge, est 0b0000011111100000.
c'est ça que tu dois "reconstruire" plutôt que des chaînes de caractères qui ne sont pour le compilateur que ... des chaînes de caractères ! et non des noms.