Lecture valeur analogique différente si affichage sur LCD ...

Bonjour à tous,

Je passe probablement à coté d'un truc mais je ne trouve rien sur le net ...

Par le biais d'un TMP35 je récupère la température puis l'affiche sur un écran LCD.
J'ai remarqué que la température mesurée était plus faible (un bon degré) et moins précise lorsque j'utilise l'écran LCD ...

Je ne pense pas que ce soit un problème d'alimentation car il suffit que je commente la ligne initialisant le LCD pour que les valeurs lus sur le TMP35 ne soient plus bonne ...

Voici ce que j'obtient pour 200 lectures d'affilé avec la ligne initialisant le LCD (LiquidCrystal lcd(7, 6, 5, 4, 3, 2);):

Min: 19.82, Max: 23.24

Et voilà les mêmes mesures avec la ligne initialisant le LCD:

Min: 17.87, Max: 21.29

Les composants viennent du starter kit ...

J'ai vu des bouts de code faisant exactement la même chose que moi sur le net alors je ne comprends pas trop ...

Merci de votre aide !

David.

e ne pense pas que ce soit un problème d'alimentation

Tout dépend de ce qu'on appelle alimentation.
Si c'est le fil de +5 volt ok, par contre si c'est le fil de masse là il faut être prudent : tout comme le LM35 le TMP35 délivre 10mV/degré et 10mV c'est vite gagné ou perdu selon comment on fait le câblage.

Je ne sais pas comment ton câblage est réalisé mais il faut absolument que le fil de masse du TMP35 ne serve qu'à lui seul et qu'il soit raccordé au gnd de la carte arduino le plus proche des entrées analogique.

C'était exactement ça ! Merci de l'aide !

David.

Ah bah en fait c'est bon mais sur un des 2 écrans LCD que j'ai ... Si je change l'écran je trouve une valeur plus faible ... Est-ce du à l'écran ?

NON c’est dû à la façon dont tu câbles.

C’est illusoire de croire que la masse est parfaite, la supra conductibilité des fils de cuivre c’est au zéro absolu (0 Kelvin) c’est à dire à -273.15 °C. A 20°C le cuivre présente une résistance, très faible mais bien réelle.
En numérique où les niveaux sont de 5 Volts et les seuils de basculement autour de 2,5 Volts on peut considérer que la masse est parfaite : ce n’est pas 50mV de “bruit” sur la masse qui vont changer quelque chose. C’est même pour cela que l’électronique numérique a été développée.
Là tu es en analogique et chaque mV compte.

Les fils qui sont censés représenter la “masse” doivent être du plus gros diamètre possible et n’avoir entre eux qu’un seul point commun : on parle de câblage en étoile, la métaphore est parlante, non ?

Sur une carte Arduino il y a deux broches de GND. Quand on n’utilise que des accès numériques on peut utiliser les deux. Quand on mixe l’utilisation des accès numériques et analogiques il y en a une de trop. Privilégie l’analogique (de toute façon le numérique il s’en fout) et utilise la borne GND la plus proche des entrées analogiques.

La mesure peut aussi être perturbée par l’activité du micro-contoleur → voir la datasheet Atmel du micro, c’est largement expliqué. Un micro-controleur universel, comme ceux qui équipent les cartes Arduino, ne peut pas donner la même précision qu’un circuit spécialisé qui ne fait qu’une chose mais la fait bien.

Merci de ton aide. Je vais essayer de revoir un peu mon montage alors !

David.