Arduino mesure de température

Je travaille sur un projet à base arduino
on a comme matériels : un Arduino et un capteur de température NTC 10k 151-237 et un afficheur 2 lignes.
J’ai réussi d’écrire se programme là :
le problème c’est que lors de la refroidissement du capteur; la température affichée sur l’LCD augmente
le problème et celui-ci :
#include <avr/pgmspace.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

double Thermister(int RawADC) {
double Temp=0;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp - 273.15; // Convert Kelvin to Celcius

return Temp;
}

void setup() {

lcd.begin(16,2);
lcd.clear();

Serial.begin(115200);
}

void loop() {
Serial.println(int(Thermister(analogRead(1)))); // display Fahrenheit

lcd.print(int(Thermister(analogRead(1))));

lcd.print(" degress C");

delay(100);

lcd.clear();

}

est ce que vous avez une idée d’où viens le problème

S'il vous plait

A LIRE

didyi: S'il vous plait

ICI c'est pour expliquer aux autres ce qu'on a réussit à faire. Utilise "Report to moderator" pour faire déplacer ton message. Si tu ne le fais pas, ton message risque d'être détruit. Si tu en fais un autre identique sans demander le déplacement de celui là c'est les deux messages qui pourront être détruit.

Le code ça s'indente sinon c'est incompréhensible et si c'est incompréhensible on ne lit pas. Le code entre balises

 sinon on ne lit pas --> c'est écrit dans la charte.

|500x217

Pour te montrer qu’on n’est pas que des gros méchants j’ai mis ton code entre balise et dans l’IDE j’ai fait OUTILS-> formatage automatique pour avoir l’indention correcte et cela donne ce qui suis ;

#include <avr/pgmspace.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

double Thermister(int RawADC) 
{
  double Temp=0;
  Temp = log(((10240000/RawADC) - 10000));
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15; // Convert Kelvin to Celcius
  return Temp;
}

void setup() 
{
  lcd.begin(16,2);
  lcd.clear();
  Serial.begin(115200);
}

void loop() 
{
  Serial.println(int(Thermister(analogRead(1)))); // display Fahrenheit
  lcd.print(int(Thermister(analogRead(1))));
  lcd.print(" degress C");
  delay(100);
  lcd.clear();
}

Faire des raccourcis comme :
Serial.println(int(Thermister(analogRead(1))));
me parait très dangeureux, c’est bon pour ceux qui jouent dans la cours des grands mais là en programmation tu est encore en maternelle.
Autre point est-tu sur que analogRead(1) est correct, cela ne serait pas plutôt analogRead(A1) . C’est possible que cela soit accepté mais je trouve que c’est casse-gueulle.

  • Vires tous tes raccourcis pour faire comme les grands et décompose les instructions en utilisant des variables intermédiaires → tu pourras toujours revenir à tes raccourcis quand cela fonctionnera pour impressionner ton professeur.
  • Vires la gestion du LCD tant que le reste ne fonctionne pas : il toujours rester au plus simple pendant la mise au point.
  • Fait le plus possible de Serial.print tout au long du programme et des calculs pour pouvoir détecter si tu t’es trompé.
    Si tu appliques ces conseils c’est toi qui trouvera la solution, en tout cas ce ne sera pas moi.

NB : vires les commentaires Farenheit, cela montre vraiment trop que tu as copié un programme tout fait. En physique il n’y a que le kelvin qui sert, quant à la vie courante en France on n’utilise pas ces unités à la c*n.

MAIS surtout utilise Report to modérator pour faire déplacer ton sujet sinon Couic !