LM35 capteur température

Bonjour,

j'utilise dans mon montage un capteur de température LM35.
Il est alimenté en 5v par le régulateur interne de mon arduino.

Voici le bout de code que j'utilise pour convertir le résultat en température :

int reading = analogRead(sensorPin);  
float voltage = reading * 5.0 / 1024; 
int temp = voltage * 100 ;

Le résultat est juste après comparaison avec deux autres thermomètres (un au mercure et un digital).

Malheureusement j'ai des fluctuations très importantes de la température.
Je peux avoir 25° (correct) puis passer à 15° deux secondes après et passer ensuite à 30° encore deux secondes après.

Comme la formule de conversion du résultat en température est liée à la tension d'alimentation (5volts) j'ai vérifié le 5V délivré par l'arduino.
Il est stable.

Je ne vois as où chercher

Je pense que c'est un probleme de type de variable. Essaye avec :

float reading = analogRead(sensorPin);  
float voltage = reading * 5.0 / 1024.0;
float temp = voltage * 100 ;

On pourra mieux adapter ensuite mais si ça marche on saura déjà si ça vient pas de la ...

un petit RC dans la ligne pour filtrer un p'tit coup devrait aider aussi...

Gozaki

www.laboelectronique.be

comment déterminer la valeur de R et de C ??
J'ai trouvé ca sur un autre site

sortie_lm35----------R1--------------------------arduino
|
|
C1
|

///

avec comme valeur R1=56kOhm et C1=0.1µF
C'est bon ???

Sur un schéma j'ai trouvé du 100k avec 0.01µF. Mais 90% des schémas que j'ai vu n'ont pas de filtre, et à mon avis c'est pas le bruit qui te fait faire du +- 5°C

j'ai modifié mon code comme proposé avant par B@tto.
Le résultat est le même.

Je vais essayer le filtre RC.
mais que prendre comme condo ??

J'ai même des amplitudes de -10V à +10V de la bonne valeur

la frequence de coupure du filtre est de 1/2piRC. prendre une céramique pour la capa genre 100n.

Ce n'est pas forcement la solution à ton probleme... mais c'est une règle de bonne conduite quand on utilise des capteurs analogiques... :wink:

Gozaki

www.laboelectronique.be

J'ai même des amplitudes de -10V à +10V de la bonne valeur

Erreur d'unité peut-être ??

Pour trouver le problème j'ai injecté dans mon arduino uiniquement le code pour la température avec un affichage sur le moniteur série.

Celui ci affiche toute les secondes le résultat relevé sur la borne 0 de l'arduino, puis la tension relevée et enfin la température.

On voit bien les écarts de relevé dont je parle.

Vu que le code est bon (enfin je crois) il ne reste pour moi que les parasites pour expliquer le problème.

Je vais essayer de débrancher tout ce qui est branché sur mon arduino pour ne laisser que le lm35, on verra bien le résultat.

Si tu as un voltmètre, vérifie que tu as les mêmes écarts.

Sinon ton montage ? Uniquement le LM35 ?

Je viens de vérifier au voltmètre.
Tension mesurée : 0.29V donc 29°
Température au thermomètre mercure 29°

Je n'ai aucune variation de tension à la sortie de mon capteur.

Donc ça doit être des parasites sur l'arduino.

T'as essayé sur une autre entrée analogique ? Il me semble que j'avais eu des problèmes comme ça sur ma mega.

c'est ce que je suis en train de faire

tu as combien de metres entre ton capteur et ta carte ? paire torsadée ? cable blindé ? Boucle de masse - mode commun ?

Gozaki

www.laboelectronique.be

j'ai 1m50 entre le capteur et l'arduino.
J'utilise un 3 fils d'un deux paires torsadées.

Je viens d'essayer toutes les entrées analogiques de la carte , c'est partout le même problème.

Pourtant au voltmètre entre l'entrée de l'arduino et la masse j'ai bien une tension constante et surtout qui ne varie jamais.

As-tu placé un condensateur de découplage aux bornes de l'alimentation de ton LM35. Sur 1,5m tu peux attraper pas mal de perturbations.
Tu devrais regarder cette doc http://www.national.com/ds/LM/LM35.pdf ils préconisent aussi de mettre une résistance série ou un circuit d'amortissement si on attaque une ligne trop capacitive (ce qui est le cas avec une paire torsadée).

non je ne l'ai pas fais et je ne peux plus le faire car le capteur est maintenant moulé dans du silicone.

Mais je pense vraiment que cela doit etre un problème avec mon arduino vu que la tension relevée au voltmetre sur la capteur est stable

tu prends une pile avec un petit pont diviseur que tu mesures avec ton arduino. n'oublies pas d'ajouter ton 1,5m de cable . regarde si c'est stable...

Au fait t'as mis un RC ?

Gozaki

www.laboelectronique.be

non pas encore

j'ai trouvé ça sur le net :

sortie_lm35----------R1--------------------------arduino
|
|
C1
|

///

avec comme valeur R1=56kOhm et C1=0.1µF

ca te parait correct ?? PAr ce que si oui je m'en vais de suite chez saint quentin...

Je pense avoir trouvé une parade :smiley: :smiley:

Au lieu d'alimenter mon lm35 à partir du 5V de mon arduino je l'alimente maintenant en 12V en utilisant le 12V d'une alim de PC qui sert aussi pour l'alimentation de l'arduino.

Ça a l'air de marcher................