PID_v1 convertir la variable setpoint en celsisus?

Bonjour,

Je recherche de l'aide, j’utilise la librairie PID_v1 et je voudrais convertir la variable setpoint en celsius et je ne sais pas trop comment m'y prendre!? :(

Merci pour votre aide,

Christian

SetPoint est le nom de la valeur à atteindre. Ce n'est pas forcément une température, c'est juste une valeur.

Dans ton application, tu as une température objectif. C'est dans ton programme qu'il faut faire cette conversion en Celsius, mais sans voir ton programme on ne peut pas t'aider...

Bonjour,

Effectivement SetPoint est le nom de la valeur à atteindre mais je voudrais changer cette valeur en sélectionnent des switchs et que cette valeur soit afficher sur le LCD mais en celsisus.

Mon problème c’est que je ne sais pas trop comment m’y prendre!

Voici le code de mon programme.

Merci de votre aide!

Christian

PID_Test.ino (1.75 KB)

Tu n'expliques rien et on ne peut pas deviner ce que tu ne dis pas... Quel est le contexte, que cherches-tu à faire avec ce programme ? Quel est ton capteur ? Sa référence, une photo, une datasheet ?

Si ta température est en degrés Kelvin, pour passer en Celsius, il suffit d'enlever 273.15 comme c'est fait à la ligne 53 du code. Donc, je ne vois pas le problème.

Par contre, tu as mis un delay(500) à la fin du code. Il ralentit le programme et ça a peut-être des effets négatifs sur le PID.

Excusez moi, mais d'où vient

Setpoint = 540;

dans votre setup : il est peu vraisemblable que ce point de fonctionnement soit en degrés Kelvin ou Celsius -risque de fonte de votre thermistance, et de se brûler les doigts-. En 1/10 Celsius?

Je soupçonne un copie coller irréfléchi ou une faute de frappe. Dans cette configuration, personne ne peut vous aider. Vous feriez bien de mettre setPoint à une valeur réaliste, en Celsius (pour rester coherent avec votre choix d'unités). Seul vous pouvez décider de ce qu'est une valeur réaliste (mais votre valeur est surréaliste)

J'attire l'attention sur le fait que la seule unité de températures qui soit cohérente avec le Système International est le kelvin. Le kelvin est basé sur des phénomênes physiques : 0 K est la plus basse température obtenable avec des gaz parfaits.

C'est la seule unité qui permet de faire des calculs sans risque d'erreur ou de confusion, surtout si la bibliothèque est conçue pour utiliser les kelvins.

A ta place je resterai en kelvin et je ne passerai en Celsius que pour les affichage de résultats, même si cela te procure un léger désagrément.

Le minimum (on n'est pas sur Mars)serait de choisir son système d'unités, de mettre en commentaire celui qu'on veut et de s'y tenir. Vous transformez une resistance en Kelvins (on ne sait pas d'où sort la formule magique, ni les coefficients: que se passera-t-il si vous changez de capteur dans un an: un commentaire permettrait de localiser le chapeau d'où est tirée la formule magique...) vous asservissez en Celsius, avec une valeur de consigne plausible si elle est en dizièmes de Celsius: comment peut on règler un tel ensemble d'incohérences sans quelques commentaires? (la NASA n'a mélangé que deux systèmes d'unités, et a envoyé son horreur sur Mars, pour s'en débarrasser: là, je crains que vous ne mélangiez 3 systèmes d'unités)