F1ATB forum
V17 Jauge de puissance - Version imprimable

+- F1ATB forum (https://f1atb.fr/forum_f1atb)
+-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html)
+--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html)
+--- Sujet : V17 Jauge de puissance (/thread-2313.html)

Pages : 1 2


RE: V17 Jauge de puissance - Richard59 - 20-02-2026

Il m'arrive d'avoir P_Dispo = P_Perdu uniquement dans le cas ou la puissance produite par les panneaux ne suffit pas a dépasser mon seuil mini de routage, pour moi à -50W
Donc tant que mon surplus est inférieur aux 50W mini de routage (j'injecte vers EDF mes 50W) et donc l'afficheur indique 50W dans dispo et 50W de perdu.

Et pourquoi le -50W, car avec mes 5 SSR en fonction et en régulation, cela me permet de ne pas trop soutiré EDF.


RE: V17 Jauge de puissance - AD69 - 22-02-2026

Après quelques tests d'affichage des variables, H3rv3 doit avoir raison. Dans ma configuration, Puissance S_T est toujours à zéro ce qui confirme qu'elle est représentative dans le cas de la seconde sonde. 

J'ai donc modifié la ligne P.Dispo de Richard59 en signant la puissance soutirée en négatif comme suit et en agrandissant un peu la police:
PrintCentre(String(PuissanceI_M) + " W", W2, C  + 10, 4);

Le top serait de passer les caractères en vert ou rouge selon le signe ! malheureusement je ne connait pas les codes couleurs et j'en suis preneur.


RE: V17 Jauge de puissance - Richard59 - 28-02-2026

Autres modifs dans EcranLCD.ino au niveau de la gauge
Changement couleur en fonction du soutirage et de l'injection EDF.


void TraceGaugeW() {
  int C=lcd->height() / 1.8;
  int W=lcd->width();
  int W2=W/2;
  float Teta0,Teta1;
  int R0=min(lcd->width(),lcd->height());
  R0=R0/3.1;
  int R1=1.5*R0;
  lcd->fillScreen(CoulFond);
  lcd->setTextColor(CoulTexte, CoulFond);
  Teta0=-180;
  Teta1=Teta0+180*2500/9000;
  lcd->fillArc(W2,C,R0,R1,Teta0,Teta1,TFT_RED);
  Teta0=Teta1;
  Teta1=Teta0+180/9;
  lcd->fillArc(W2,C,R0,R1,Teta0,Teta1,TFT_ORANGE);
  Teta0=Teta1;
  Teta1=Teta0+180*35/90;
  lcd->fillArc(W2,C,R0,R1,Teta0,Teta1,TFT_GREEN);
  Teta0=Teta1;
  Teta1=0.0;
  lcd->fillArc(W2,C,R0,R1,Teta0,Teta1,TFT_BLUE);
 
  if (PuissanceS_T + PuissanceI_M - PuissanceS_M >= 0) {
  lcd->setTextColor(0x07E0, CoulFond);   // Police en Vert
  PrintCentre("P.Dispo: " + String(PuissanceS_T + PuissanceI_M - PuissanceS_M) + " W", W2, C + 5, 3);   // Affichage Puissance Disponible
  }
  else {
  lcd->setTextColor(0xF800, CoulFond);   // Police en Rouge
  PrintCentre("P.Dispo: " + String(PuissanceS_T + PuissanceI_M - PuissanceS_M) + " W", W2, C + 5, 3);
  }
  if (PuissanceS_M > 0) {
  lcd->setTextColor(0xF800, CoulFond);  // Police en Rouge
  PrintCentre("Depuis EDF: " + String(PuissanceS_M) + " W", W2, C + 60, 3);    // Affichage Puissance Injectée
  }
  else {
  lcd->setTextColor(0xFD20, CoulFond);  // Police en Orange
  PrintCentre("Vers EDF: " + String(PuissanceI_M) + " W", W2, C + 60, 3);    // Affichage Puissance Perdue
  }


  lcd->setTextColor(0xFFFF, CoulFond);