Go Down

Topic: [RESOLU] modification à la volée de analogReference() (Read 384 times) previous topic - next topic

ludobabs

Jan 08, 2013, 07:24 pm Last Edit: Jan 08, 2013, 08:46 pm by ludobabs Reason: 1
Bonjour à tous. Permettez moi de me tourner de nouveau vers vous.

Ma question est dans le titre du post : "est-il possible ( et pertinent ) de modifier la tension de reference grace à analogReference() dans la boucle loop ?"
Y a t-il un delais à respecter entre les modification ? ou autre ... ?

Je vous remercie.

B@tto

La mesure analogique se fait toujours en comparaison de la référence analogique. Cependant il semble qu'il faille attendre un peu et attention si tu utilises AREF :

Quote from: Datasheet Atmega 328P
If the user has a fixed voltage source connected to the AREF pin, the user may not use the other
reference voltage options in the application, as they will be shorted to the external voltage. If no
external voltage is applied to the AREF pin, the user may switch between AVCC and 1.1V as reference
selection. The first ADC conversion result after switching reference voltage source may
be inaccurate, and the user is advised to discard this result.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

ludobabs

#2
Jan 08, 2013, 08:45 pm Last Edit: Jan 09, 2013, 02:23 pm by ludobabs Reason: 1
Quote
The first ADC conversion result after switching reference voltage source may
be inaccurate, and the user is advised to discard this result.


J'ai donc modifié ma fonction de lecture analogique en ajoutant :

Code: [Select]

...
 int rien = analogRead(pin);        // discard the first result of ADC conversion after switching reference voltage source & waiting a few
 delay(10);                           
...


Confirmation que la première lecture analogRead() après un changement de la tension de référence par analogReference() n'est pas correcte. Le délais semble être nécessaire, inférieur à 5 ms, la lecture n'est pas valable. J'ai mis 10 par sécurité et ça fonctionne parfaitement !

Merci beaucoup  :)

B@tto

Après ils parlent pas forcement de temps, "la première conversion sera sans doute imprécise". Peut-être qu'un analogRead() peut suffire car c'est peut-être juste une question de charge persistante ...
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Go Up