[RESOLU] modification à la volée de analogReference()

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.

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 author=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.[/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 :

...
  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 :slight_smile:

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 ...