Mesures simultanées de température avec LM35 et LM335

Mesures avec le LM 35 inohérentes et instables

a marqué ce sujet comme résolu.

Sauriez vous m'expliquer pourquoi je constate cette incohérence et instabilité avec le LM35 lorsque je mesure dans le même code la température avec un LM335 alors que dans un code unique avec LM35 tout est cohérent et stable ? C'est quand même super bizarre!! Influence entre les capteurs ? Je sèche lamentablement.

Merci beaucoup.

Ci dessous le code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * sktech LM35 : 10mV/°C (0mV à 0°C)  & LM335 : 10mV/°K (273.15 à 0°C)
 * affiche la température sur le moniteur série
 * et allume une LED si temp > 25°C
 */
 const int in35=0;  // broche analogique (patte centrale du LM35)
 const int in335=1;  // broche analogique (patte centrale du LM335) 
 const int outPin=13;  // broche de sortie sur laquelle est branchée une LED avec résitance de 220Ohm
 const float threshold=25.00; // seuil de déclenchement en °C

void setup() {
  Serial.begin(9600);  // initialisation de la liaison série
  pinMode(outPin,OUTPUT);
}

void loop() {
  int val35 =analogRead(in35); // Lecture sur la broche analogique A0 de la valeur
  delay(10);
  int val335 =analogRead(in335); // Lecture sur la broche analogique A1 de la valeur

  Serial.print("LM35  : ");
  //Serial.print(val35);
  Serial.print(" > ");
  float mil35 = (val35/1024.0)*5000;
  float cel35 = mil35/10; // sortie du capteur = 10mV/degré
  Serial.print(cel35);
  Serial.print(" degres celsius, ");
  Serial.print((cel35*9)/5+32); // convertion en Fahrenheit
  Serial.println(" degres Fahrenheit ==== ");

  Serial.print("LM335 : ");
  //Serial.print(val335);
  Serial.print(" > ");
  float mil335 = (val335/1024.0)*5000;
  float cel335 = mil335/10-273.15; // sortie du capteur = 10mV/°K    0°Celsius = 273.15
  Serial.print(cel335);
  Serial.print(" degres celsius, ");
  Serial.print((cel335*9)/5+32); // convertion en Fahrenheit
  Serial.print(" degres Fahrenheit ==== ");


  if((cel35>threshold)||(cel335>threshold))
  {
    digitalWrite(outPin,HIGH);
    Serial.println("broche active");
  }
  else
  {
    digitalWrite(outPin,LOW);
    Serial.println("broche inactive");
  }     

  delay(2000); // Attent deux secondes
}

Edit de Thunderseb : ajout de la coloration syntaxique

+0 -0

Bonjour,

Quelle incohérence ? Quelle instabilité ? Je ne vois que du code :)

Ce serait possible d'avoir plus de détails ? Il se passe quoi exactement sur tes valeurs ?

Sinon, à part le fait qu'ils n'ont pas la même sensibilité, et dans l'hypothèse ou tes conversions sont correctes (digital -> mV -> Celsius/Fahrenheit) je ne vois pas grand chose qui semble poser problèmes.

EDIT: J'ai vérifié les calculs de conversion en Celsius, y a pas d'erreurs (pas vérifié pour les Fahrenheit)

+0 -0

Et bien voilà les mesures relevées toutes les 2s : - avec LM335 : très stable 19,33 19,82 19,33 19,82 19,82 etc .... - avec LM35 : très instable : 21,48 21,97 23,44 21,97 15,14 14,16 36,62 30,27 16,11 etc… Que se passe t il donc ?

PS : j'enverrais bien une copie d'écran mais ne sait comment faire ici

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte