problème TFT dessin thermomètre

Bonjour,

Je ne trouve pas la solution a mon problème d’affichage d’un thermomètre sur mon écran tft.
Quand la température augmente, le rouge a l’intérieur du thermomètre monte, tout est OK
Mais quand la température décent, la partie qui était rouge le reste.
Le problème vient surement que le rouge n’est pas remplacer par du blanc mais lorsque je met la ligne de commande correspondant au blanc dans le loop, j’ai un scintillement.

void setup() {
tft.begin();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
}
tft.fillCircle(375, 100, 20, TFT_WHITE);
tft.fillRoundRect(368, 2, 15, 100, 5, TFT_WHITE);
tft.fillCircle(375, 100, 18, TFT_RED);

void loop(){
tft.fillRoundRect(370, tfttermo, 11, (100-tfttermo), 5, TFT_RED);
}

Avez vous une idee svp ?

hello

avec des lignes en balade comme ça entre le set up et la loop, je doute que ca compile.

ne nous donne pas des lignes copiées à l’arrache. donne nous ton prg complet.

celui qui contient la ligne qui fait clignoter ton écran.

salut dfhg,

dsl, je ne voulait pas vous ennuyer avec tout les a coté.

voici

led_jebao_oscilo_djbouns_2017.ino (15.6 KB)

hello
peux tu tester ce code

tu le téléverses et tu regardes ton écran

#include <TFT_HX8357.h>
TFT_HX8357 tft = TFT_HX8357();

void setup()
{
Serial.begin(9600);
tft.begin();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.fillCircle(207, 200, 20, TFT_WHITE);
tft.fillRoundRect(199, 2, 15, 200, 5, TFT_WHITE);
tft.fillCircle(207, 200, 18, TFT_RED);
} 

void loop()
{
  for(int f= 10;f<=150;f+=10)
  {
    affichage_temperature(f);
    delay(1000);
  }
  for(int f= 140;f>=10;f-=10)
  {
    affichage_temperature(f);
    delay(1000);
  }
}

void affichage_temperature(int tfttermo)
 {
tft.fillRoundRect(199, 2, 15, (180-tfttermo), 5, TFT_WHITE);
tft.fillRoundRect(201, (170-tfttermo), 11, (tfttermo+20), 5, TFT_RED);
tft.setCursor(220 , 20);
tft.setTextColor(TFT_RED,TFT_BLACK);
tft.setTextSize(3);
if (tfttermo<100){tft.print(" ");}
tft.print(tfttermo,1);
tft.setTextSize(1);
tft.print("C");
 }

Nikel !

Je vais assaillez de comprendre ton code et de l'adapter. Jte fait un retour rapide.

Merci encore.

cc dfgh,
j’ai ajouter une condition sinon j’avais un scintillement quand le thermomètre était au max.

sensors.requestTemperatures();
tempbac = sensors.getTempCByIndex(0);
 
 
tfttermo = ((24 - tempbac)*24)+100 ;
if(tfttermo<5){
tfttermo=4;
}
if(tfttermo>100){
tfttermo=100;
}
if(tfttermo>8){
tft.fillRoundRect(368, 3, 15, tfttermo, 5, TFT_WHITE);
}
tft.fillRoundRect(370, tfttermo, 11, (100-tfttermo), 5, TFT_RED);
tft.setCursor(395 , 20);
tft.setTextColor(TFT_RED,TFT_BLACK);
tft.setTextSize(3);
tft.print(tempbac,1);
tft.setTextSize(1);
tft.print("C");

C’est super.
Merci Merci Merci :slight_smile:

Et si je peut abusé, vu que tu a l’air de bien maîtrisé, peut être peu tu m’aider également sur ce problème de fond (de librairie) :

Merci encore.