Bonjour à tous,
j'avais commencé sur l'ancien forum une discussion sur le moyen pour créer une plage de chauffage.
Je m'explique.
Je veux allumer le chauffage de mon aquarium à 24°
chauffer jusqu'à 26°
éteindre le chauffage
attendre que la température soit redescendue à 24° pour rallumer.
Jean-François m'a proposé ça :
if (temperature<=24){
ChauffePin=HIGH;
}
if (temperature>=26){
chauffePin=LOW;
}
le problème est que le chauffage se met à LOW à 25° et donc n'atteint jamais les 26°
Le code est juste, il s'allume à 24°C et s'éteint à 26°C.
Maintenant tu peux avoir des mesures de température bruitées et donc lire brièvement 26 ou plus et donc arrêter le chauffage trop tôt.
Il faudrait sortir les mesures sur la console pour le vérifier.
Ensuite tu peux faire un filtrage simple en faisant la moyenne sur les dix (ou plus) dernières mesures pour lisser les résultats.
Dans setup() je doit mettre ma sortie chauffage en LOW ou HIGH ou aucun des deux ??
C'est indifférent.
Si tu initialise à HIGH et que la température est supérieure à 26°C au premier passage dans la boucle cela l'arrêtera
Si tu initialise à HIGH et que la température est inférieure à 24°C au premier passage dans la boucle cela confirmera l'état
Si tu initialise à LOW et que la température est supérieure à 26°C au premier passage dans la boucle cela confirmera l'état
Si tu initialise à LOW et que la température est inférieure à 24°C au premier passage dans la boucle cela allumera le chauffage
Si tu ne mets rien la sortie sera dans l'état fixé par défaut à l'initialisation de l'arduino. Mais c'est toujours bien de savoir dans quel état on démarre donc il vaut mieux mettre un état.
Question substantielle : je pense que celle de Jean-François n'est pas anodine, suivant comment tu récupères ton résultat, ça peut avoir de grosse conséquence, notamment si tu récupérer en integer, donc arrondie. Ainsi à 25.51°C (si je me trompe pas dans les arrondis de l'arduino) pour lui ça équivaut à 26°C ...