Problème de lecture de tension en entrée analogique Arduino
Bonsoir à tous.
Je crée cette discussion en raison d’un problème avec les ports analogiques de mon Arduino Uno. J’aimerais simplement mesurer une tension, seulement la valeur affichée est aberrante (Exemple : 11 pour 3V).
Lorsque je branche le port (A0 par exemple) au GND, j’ai bien 0...
J’ai changé de carte, mais le problème subsiste.
Je me suis dit que cela pourrait avoir pour cause une trop grande intensité (2A), mais même avec un faible ampérage rien n’y fait.
Pourriez-vous m’éclairer s’il vous plaît ?
Le CAN fait de la résistance
Bonjour Fermor,
Citation:
Envoyé par
Fermor
...
Code:
float tensionLue = map(valeurLue, 512, 1023, 450 , 900 * 0.995);
0,995 est un multiplicateur qui corrige la tolérance des résistances du pont
En rajoutant un condensateur de 47 nano sur l'entrée IN et la masse on arrive à une lecture quasi stable
Sauf erreur, map() est une fonction entière qui traite des entiers. Aussi 900*0.995 sera arrondi à 895 ou 896 avant conversion de gamme. Par ailleurs, les 512 valeurs en entrée sont traduites en 446 valeurs entières en sortie. Il y a donc 66 paires d'entrées différentes qui donnent une même sortie.
Est-il légitime que la correction du pont ne touche que le maxi de la gamme ? Si oui, la formule map() pourrait être remplacée par :
Code:
1 2 3 4
| // 0.872070 = (895.5-(450-1))/(1023-(512-1))
float tensionLue = (valeurLue - 511.0) * 0.872070 + 449.0;
// ou
float tensionLue = valeurLue * 0.872070 + 3.3720700; |
J'ai décalé de 1 pour respecter la doc (un peu contradictoire) qui précise que la pleine échelle doit être divisé par 1024 soit 1023 - (0-1) et non 1023.
La bonne valeur de la capacité sur l'entrée dépend essentiellement de celles des résistances du pont. Un filtrage soft est aussi envisageable mais il suppose que la conversion AN est correcte. Le filtrage hard sert à deux choses diminuer les parasites et abaisser l'impédance d'entrée avant convertisseur. Le filtrage soft sera très efficace pour les parasites mais ne pourra corriger une conversion faussée par une impédance d'entrée trop élevée (> 10 kOhms).
Salut