sonde temp, erreur de mesure avec pile et non en usb.

Bonjour,

Aujourd hui j’ai vérifié la fiabilité de mon capteur de température (lm35) en comparant avec 2 thermocouples (appareil indépendants).

J’ai constaté que mon arduino + lm35 indiqué une température inférieur de UN degré par rapport au 2 thermocouples.

Je l’alimentais avec une pile 9v, je suis passé par l’alimentation usb, l’erreur est corrigé, ils indiquent la même température.

J’ai changé la pile 9v par une neuve —> même résultat (erreur de un degré)
Re connection en usb et la il n’y a plus d’erreur…

Est ce un ‘incident’ connu?

Merci.

bah oui c’est ce qu’on appel une calibration. Ton Atmega utilise le pin AVCC comme référence analogique (1024 = AVCC), sur USB c’est plus faible que sur VIN, ça doit compenser l’erreur. Si ton AVCC bouge alors ta mesure aussi, sachant que le LM35 n’est pas dépendant des variation de son alimentation.

Bienvenue dans le monde de l’analogique :slight_smile:

Pour corriger cette erreur de la pile 9v (au détriment de l'usb), j'imagine que je dois amener une correction à mon programme?

overskyline:
Pour corriger cette erreur de la pile 9v (au détriment de l'usb), j'imagine que je dois amener une correction à mon programme?

Ou utiliser la référence interne qui sera identique quelque soit l'alimentation.

Bonjour,

fdufnews:

overskyline:
Pour corriger cette erreur de la pile 9v (au détriment de l'usb), j'imagine que je dois amener une correction à mon programme?

Ou utiliser la référence interne qui sera identique quelque soit l'alimentation.

Ou une référence de tension externe.

Tu as là un très bon exemple des dispersions dues à l’alimentation.
Inventaire:
Tension fournie par l’USB : la norme dit 5 V+/- 5% soit 4,76 V <= U <= 5,25 V
Cela ne dépend que de ton PC. J’ai même vu un PC qui ne donnait que 4,5 V !

Tension fournie “à partir de la pile de 9 V”. La pile ne fait que fournir une tension au régulateur de tension 5V interne à la carte. C’est normal que la mesure ne change pas avec la pile, le régulateur est mis la pour cela. Il se trouve que le régulateur choisi est plus précis que l’USB (mieux que le %).

Mode de fonctionnement de l’ADC
Il faut lire la datasheet du micro pas seulement le site arduino qui est très incomplet.
La référence de tension peut être choisie de trois façons:

Mode par défaut “à l’alumage”. C’est la tension d’alim Vcc qui sert de valeur de référence et si elle bouge bien évidement la mesure bouge.

Mode référence interne au micro : elle fait 1,1 V +/- 10 %.
Attention pour un micro donné elle est constante, elle bouge seulement d’un lot de fabrication à un autre.
Heureusement pour chaque micro sa valeur peut être mesurée : il faut configurer analogReference (INTERNAL) et appliquer un voltmètre sur la sortie de la carte marquée Aref.

Mode reférence externe: il faut appliquer une tension parfaitement connue sur la sortie de carte marquée Aref. La tension doit être comprise entre 1,1 V et Vcc.
Ce peut être la sortie du régulateur 3,3 V également intégré à la carte.

Attention :
Si le mode analogReference(INTERNAL) est choisi il ne faut absolument pas appliquer une tension sur la sortie de carte Aref : c’est la mort immédiate du convertisseur → voir la Datasheet tout y est indiqué.

La syntaxe Arduino :
http://arduino.cc/en/Reference/AnalogReference

68tjs:
...

Mode reférence externe: il faut appliquer une tension parfaitement connue sur la sortie de carte marquée Aref. La tension doit être comprise entre 1,1 V et Vcc.
Ce peut être la sortie du régulateur 3,3 V également intégré à la carte.
...

et petit apparté sur le sujet , lorsque des capteurs renvoient des Vout max differents, il peut etre interessant d'utiliser aussi un AREF different le plus proche du Vout selon le capteur "lu" pour maximiser l'echelon .

il faut prendre quelques precautions 'essentiellement soft" pour déjà purger et etre certain de l'AREF à T0
mais avec du DAC facile embarquant/ou disposant d'une Vref ça peut etre sympa pour faire de la calibration de chaine/capteurs.
j'en avais parlé sur le forum, mais je ne sais plus où :grin: