lm35 + photorésistance

Le problème exposé dans ce sujet a été résolu.

Bonjour.

Bon je reviens à la charge, j'expérimente mais j'ai un soucis que je ne comprends pas…

J'ai toujours mon montage avec le LM35 fonctionnel. J'ai ajouté une photorésistance et j'ai codé tout celà mais…

les mesures prise par le lm35 sans la photorésistance sont nikel. Les mesures prises par la photorésistance sans le lm35 sont stables.Par contre les deux ensemble, ça foire… La mesure de la photorésistance est stable mais celle du lm35 varie grandement… de 15° à 45°…

mon montage (j'ai laissé la breadboard mais j'ai pris une plaque epoxy soudé): montage

mon 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <LiquidCrystal.h>
#include <SD.h>

// constante, emplacement des broches
const int RS = 2;
const int E = 3;
const int D4 = 5;
const int D5 = 6;
const int D6 = 7;
const int D7 = 8;
LiquidCrystal lcd(RS,E,D4,D5,D6,D7);

//lm35 + photorésistance
const char temp = 0;
const char lum = 1;

//variables
float temperature = 0.0;
int lumiere = 0;
int valeur_temp = 0;
int valeur_lum = 0;

File monFichier;

void setup()
{
    pinMode(10,OUTPUT);
    Serial.begin(9600);
    lcd.begin(16,2);
}

void loop()
{ 

  //analyse de la température
  valeur_temp = analogRead(temp);
  temperature = valeur_temp / 2.056;
  //analyse de la lumière
  valeur_lum = analogRead(lum);
  lumiere  = (analogRead(lum) * 5)/1024;

  //écriture sur lcd
  lcd.print("temp: ");
  lcd.print(temperature);
  lcd.setCursor(0,2);
  lcd.print("lumi: ");
  lcd.print(valeur_lum);
  //et sur Serial
  Serial.print("temp: ");
  Serial.println(temperature);
  Serial.print("valeur temp: ");
  Serial.println(valeur_temp);
  Serial.print("lumiere: ");
  Serial.println(valeur_lum);

  //séquence SD card
  /*if(!SD.begin(4))
    {
        Serial.println("erreur carte SD");
    }
      else
      {
        Serial.println("initialisation.......ok");
      }
    if(!SD.exists("test.txt"))
    {
       Serial.println("fichier inexistant"); 
    }
    else
    {
      Serial.println("fichier ok");
      //ouverture du fichier
      monFichier = SD.open("test.txt", FILE_WRITE);
      //séquence d'écriture
      if(monFichier)
      {
        monFichier.println(temperature);
        Serial.println("donnee ecrite");
      }
      else
      {
        Serial.println("erreur de fichier");
      }

      monFichier.close();
    }*/

  delay(1000);

  lcd.clear();
}

Merci pour votre aide!!

Tu devrais peut être envisager de les attaquer derrière un stabilisateur de tension. Ce sont le genre de composants très sensible à la valeur de l'alimentation pour fournir une mesure. La stabiliser à leur pate est donc une bonne idée.

Allez j'ai trouvé: donc il faut faire 1 première meusure factice puis une seconde que l'on utilisera.

Utilisation de plusieurs senseurs Vous pourriez rencontrer des problèmes si vous utilisez de multiples senseurs analogiques. Si la température devient incohérente lorsque vous ajoutez plus de senseur, cela signifie que les senseurs interagissent entre eux quand le circuit de lecture analogique passe d'une entrée analogique à l'autre. Vous pouvez régler ce problème en effectuant deux lectures consécutives avec un petit délai entre les deux. Il suffit de ne pas tenir compte de la première des deux lectures.

sources

En tous cas merci pour tous!

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