![]() |
Fonction hystérésis sur commande 0N - 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) +---- Forum : Evolutions faites, à faire, dont vous rêvez... (https://f1atb.fr/forum_f1atb/forum-10.html) +---- Sujet : Fonction hystérésis sur commande 0N (/thread-1684.html) |
Fonction hystérésis sur commande 0N - BrunoM - 09-08-2025 Bonjour, Sur mon routeur, j'utilise un gros dissipateur thermique sur lequel j'ai installé une sonde thermique. J'ai mis également un ventilateur sur le coffret. j'actionne le ventilateur en fonction de la température de la sonde pour refroidir le coffret (ça marche très bien). Par contre je souhaitais utiliser la fonction Hystérésis (différence de quelques degrés entre le déclenchement et l'arrêt du ventilo) mais elle semble ne pas fonctionner le mode "ON" alors quelle fonctionne en mode "ROUTAGE". Est ce que vous confirmez? Si c'est le cas, serait il possible d'avoir cette fonction dans le mode ON ? Merci encore pour votre support et vos conseils RE: Fonction hystérésis sur commande 0N - 59jag - 10-08-2025 j ai regardé oui l'hystérésis ne fonctionne pas en mode "ON" car elle ne peut que désactiver une action, jamais l'activer. si tu veux corriger va dans action.cpp recherche if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { // hystérésis if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i]; if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i]; if (Tempx10 > Tseuil) { ConditionsOk = false; } } modifi a la fin par if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i]; if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i]; if (Tempx10 > Tseuil) { ConditionsOk = false; } if (Tempx10 < Tseuil) { ConditionsOk = true; } } RE: Fonction hystérésis sur commande 0N - FastFrench - 12-08-2025 (10-08-2025, 07:27 AM)59jag a écrit : j ai regardé oui l'hystérésis ne fonctionne pas en mode "ON" car elle ne peut que désactiver une action, jamais l'activer. Si je peux me permettre, ce code pourrait être simplifié: if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { if (Tempx10 > Tsup[i]) Tseuil = Tinf[i]; if (Tempx10 < Tinf[i]) Tseuil = Tsup[i]; ConditionsOk = Tempx10 < Tseuil; } Cette version conserve la même logique que l'original mais est plus lisible et efficace (en toute rigueur, on a un fonctionnement différent si Tempx10 == Tseuil, mais je pense que le nouveau fonctionnement est bien celui attendu) RE: Fonction hystérésis sur commande 0N - FastFrench - 13-08-2025 (10-08-2025, 07:27 AM)59jag a écrit : j ai regardé oui l'hystérésis ne fonctionne pas en mode "ON" car elle ne peut que désactiver une action, jamais l'activer. A mon avis ta ligne ne change rien du tout au fonctionnement actuel. Si tu regardes bien les lignes de code qui précèdent, ConditionsOk est initialisé à true. Donc comme rien ne le met à false, c'est inutile de le remettre à true. |