Pages: [1]   Go Down
Author Topic: [RESOLU] modification à la volée de analogReference()  (Read 316 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 39
Ardui-Novice
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 08, 2013, 02:46:32 pm by ludobabs » Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3589
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
Newbie
*
Karma: 0
Posts: 39
Ardui-Novice
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
...
  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  smiley
« Last Edit: January 09, 2013, 08:23:43 am by ludobabs » Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3589
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Pages: [1]   Go Up
Jump to: