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

Mesures avec le LM 35 inohérentes et instables

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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

Édité par Thunderseb

+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)

Édité par Spit

+0 -0
Auteur du sujet

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

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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