Comment inscrire les valeurs du serial moniteur dans un fichier texte ?

Bonjours a tous,

Toujours pour mon projet domotique, je suis en train de travailler sur un LM35 relier a mon arduino. J'ai donc ce programme sur l'arduino, a priori il n'y a pas d'erreur ?

float temp;
int tempPin = 0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  temp = analogRead(tempPin)*0.48828125;
  Serial.println(temp);
  delay(1000);
}

Le problème est que la température relever dans le "serial moniteur" est incohérente. Il m'affiche une température de 24.90°C chez moi alors que j'ai entre 21 et 22°C et une température de 18.07°C en plein courant d'air alors que mon thermomètre m'affiche 17°C (il n'est pas en courant d'air lui ). Est-ce que le LM35 doit donc être étalonné ou j'ai un problème dans mon programme ?

merci

EDIT: au fait voila mon branchement

Bonjour,

As tu essayer de mesurer la tension de sortie du LM35 à l'aide d'un voltmètre pour vérifier par rapport à la température réelle ?

J'ai essayé avec mon propre LM35 il y a peu (pour le prendre en main). Un premier code trouvé sur le net me donnait du pur n'importe quoi (négatif dans le salon ... Au mois de mai sur la Côte d'Azur ? M'enfin ! :slight_smile: )
Puis j'ai trouvé ceci, qui me donne de meilleurs résultats. Le gars échantillonne 8 relevés de température, puis fait la moyenne. Maintenant, pour récupérer un delta aussi balèze que le tien ...
Je n'ai pas validé avec un thermomètre de qualité pour vérifier l'exactitude, mais on était assez proche de ce que me disait un brave thermomètre à 5€ dans les bacs.

Au cas où voici le lien
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203159459/2

Pas bon au niveau des variables (0.48828125 n'est pas bien géré à mon avis).

 int reading = analogRead(sensorPin);   
float voltage = reading * 5.0;
voltage /= 1024.0; 
float temp = voltage/100;
Serial.println(temp);

Salut

Je te conseille de vérifier à l'oscilloscope ou au voltmètre la tension en sortie de ton LM35 (si tu l'as pas déjà fait), parce que d'après la doc pour chaque degré on a + 10.0 mV, pour s'assurer que c'est bien linéaire et être sur que ton LM35 fonctionne correctement.

Et puis cela te permettra aussi de comparer cette tension avec les températures "réelles".

Linear + 10.0 mV/°C scale factor
0.5°C accuracy guaranteeable (at +25°C)

Salut

Pour le même prix tu aurais dû acheter un DS18B20 ou DS18S20 !
Tiens regarde sur ce site ( très bon site ! ) : http://www.mon-club-elec.fr

Et plus précisément là : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20ThermometreSimple

Je pense que ça va t'aider :smiley:

PS : Attention le programme est fait pour un DS18B20 si tu mes un DS18S20 il faut le modifier.

@micalement
chabot380

Alors merci a vous, je vais essayer de répondre a tous le monde :wink:

@chabot380: Alors le LM35 il s'agit d'une donation alors je ne l'es pas payé ^^ du coup je fait avec.

@SamoLaw: J'avais deja regardé ça, alors au voltmètre ( de faible precision ) sur le calibre 2000mV j'ai 259. Donc en suivant la doc cela devrait me donné 25.9°C .... euh c'est pas un Hammam chez moi il y a un souci la ....

J'ai même été plus loin en regardant le code brut que reçoit l'arduino et j'ai 51 => 51*(0.5*1000)/1024= 24.90 .... et avec mon programme j'obtient bien 24.90, le soucis vient donc d'ailleurs ...

@B@tto: (0,5*1000)/1024 = 0.48828125 et j'ai essayer les deux et ça ne change rien au soucis ....

int reading = analogRead(sensorPin);   
float voltage = reading * 5.0;
voltage /= 1024.0; 
float temp = voltage/100;
Serial.println(temp);

Ce code est faux en plus, c'est *100 et pas /100

@rekuino: j'avais essayer de définir un delta, le soucis est que mon Delta n'est pas "linéaire" .... en extérieur j'ai apparemment 1°C de différence mais en intérieur la j'ai facile 2 ou 3°C ...

Sinon j'alimente mon LM35 en 5Volt, c'est incohérence peuvent-elles venir d'un "sous-voltage" du capteur ?

merci a vous

Si tu as un problème même avec le voltmètre, alors deux options : capteur défectueux, ou alimentation pas à exactement 5V.

chicotore:
...

@SamoLaw: J'avais deja regardé ça, alors au voltmètre ( de faible precision ) sur le calibre 2000mV j'ai 259. Donc en suivant la doc cela devrait me donné 25.9°C .... euh c'est pas un Hammam chez moi il y a un souci la ....

J'ai même été plus loin en regardant le code brut que reçoit l'arduino et j'ai 51 => 51*(0.5*1000)/1024= 24.90 .... et avec mon programme j'obtient bien 24.90, le soucis vient donc d'ailleurs ...

...

Salut,

Bah dans ce cas le plus simple, c'est de changer de LM35. :blush: Parce que c'est bizarre je trouve, dans la doc c'est bien dit 10 mV par degré avec une précision de 0.5°C il me semble. :~

Pour le LM35 Tu devrais prévoir peut être une amplification de 10 entre la sortie du LM35 et l'entrée du CAN afin d'augmenter la précision de conversion car tu n'utilise qu'une partie très réduite de l'échelle de conversion, tu aurais ainsi 100mV/°C au lieu de 10mV/°C et ton convertisseur travaillerait aux environs du milieu de son domaine de conversion.

J'ai fait un test en alimentant en 12Volt le LM35 et j'ai 252mV .... Je vais essayer d'en trouver un autre parce que je pense qu'il est HS ....

merci

Pour l'amplification j'ai des TIP31C en stock, ça peut le faire ?

merci

Bon j'ai vu avec la boutique ebay d'ou il vient et le vendeur m'en renvoi 2 gratuitement XD, je vais donc voir si les deux nouveaux fonctionnent cette fois ^^

chicotore:
Bon j'ai vu avec la boutique ebay d'ou il vient et le vendeur m'en renvoi 2 gratuitement XD, je vais donc voir si les deux nouveaux fonctionnent cette fois ^^

Bonne nouvelle. :slight_smile: Sympa le vendeur. XD

Oui d'ailleurs voici sa boutique => http://stores.ebay.fr/Chi-Wing-LED-product-shop?_trksid=p4340.l2563

Bonjour tous
sympa la boutique, les différences de prix unitaire sont dues à quoi ? neuf/occasion ?
sinon pour ton montage, sur les circuits que j'ai, il y a un couple 100k/100 nf
(en //)entre sortie LM et masse, au plus près du LM.
j'ai des t° assez proches de la "réalité" pour autant que le thermo de référence soit exact...
Testé aussi sur l'arduino (c'est mon premier :)) est c'est ok.
je pense qu'il faut d'abord tester le LM avec un voltmètre pour vérifier le 10mv/°
et partit sur une base correcte.
A plus tard

je pense qu'il faut d'abord tester le LM avec un voltmètre pour vérifier le 10mv/°

C'est ce que j'ai fait au début et j'ai 259mV au voltmètre donc 25.9°C .... chez moi il ne fait pas autant ^^

sinon pour ton montage, sur les circuits que j'ai, il y a un couple 100k/100 nf
(en //)entre sortie LM et masse, au plus près du LM.

Ce montage sert pour capter des température négative il me semble

Pour les différences de prix c'est juste des bugs de conversion $/€ je pense donc faut classer par "moins cher avec livraison"

re
je viens de relire le datasheet (LM35DZ Fiche Technique Datasheet pdf - Sonde De Température Centigrade De Précision - National Semiconductor) , schémas fin de page, il me semble que référencé à la masse, le LM ne lit pas les
t°<0, il faut éloigner celle ci de la masse montage (diode ou R) pour les lire.
mais pi't'être je me goure...
sinon le couple 100k/100nF fonctionne pour les positives - du moins pour moi depuis 2 ans, et un petit mois, 2 sur arduino - yes
pour le test volmetre, je pensais aux nouveaux que tu vas recevoir :slight_smile:

édit, en début de page il y a aussi un montage utilisant une R en sortie vers une alim. négative, pour lire les t°<0
et courage ça va viendre - moi je peine sur le code malgres les exemples :blush:
A bientôt

Tu aurais un exemple/schémas de ton montage 100k/100nf ?

Il ne lit les négatif qu'avec un montage spécial avec une alimentation négative :wink:

Pour le code arduino, celui que j'ai posté fonctionne en principe :wink:

Hello du mat
un p'tit plan vite fait...et une vue des miens (R est de l'autre coté)
sinon "mon" code à l'air de fonctionner aussi, ça doit être écrit cochon :blush:
(comparaison 2 LM, mise en route d'un relais si 1> à l'autre, horloge, écriture sur LCD,
et envoi sur liaison série), c'est coté processing que je cherche à récupérer les infos.
ça va venir aussi, sinon je demanderais
toujours pas averti des réponses - sniff, et l'heure des messages ? ici il est 7h26
A plus tard

Schéma.jpg

LM35dos1.jpg

Bon bah je vient de recevoir mes 2 nouveaux LM35 et toujours les même incohérences .... 26°C dans mon bureau j'ai un gros doute quand même. J'en est vraiment mare de ces LM35 à la c** :sleeping: