Mesurer la tension de la source d'alimentation d'un Arduino à l'aide de l'entrée analogique

9

J'alimente un Arduino à l'aide d'une batterie 5v (3,7v vers un module élévateur) et j'ai besoin de mesurer la tension. Supposons que la batterie délivre un courant élevé , est-il sûr de mesurer la tension via Analog In? Comme dans ceci:

entrez la description de l'image ici

La raison pour laquelle je pose la question est que je ne connais pas grand-chose à l'architecture et aux limitations de l'ADC Arduino. Donc normalement, je le ferais pour la sécurité:

entrez la description de l'image ici

Les connexions du premier diagramme sont-elles sûres pour l'ADC? Merci d'avance!

Remarque: Une question similaire a été posée ici: ( Surveiller l'utilisation de l'alimentation CC ), mais elle ne répond pas à la question des charges de courant élevées sur la batterie.

Ahmed Farid
la source
1
Où avez-vous obtenu une batterie 5V?
En fait, c'est une batterie de 3,7 V qui entre dans un circuit régulateur de tension élévateur. Je suis en effet intéressé par la mesure de la batterie 3.7v elle-même, mais par exemple, je viens de supposer que son 5v montre que l'Arduino fonctionne.
Ahmed Farid
Ah, mais ça pourrait changer les choses. Probablement pas cependant: l'arduino ne se souciera pas de la quantité de courant consommée par la batterie, tant que tout ce courant ne passe pas par la broche IO. Mais je ne suis pas sûr, je ne connais pas l'arduino.
C'est vrai. Je m'inquiète de l'entrée actuelle de la broche Analog In si je la connecte directement à une batterie.
Ahmed Farid

Réponses:

6

Vérifiez la fiche technique pour le courant d'entrée sur une broche d'E / S Cela dépend du type exact de contrôleur sur votre Arduino. Il est probablement appelé broche d'E / S de courant de fuite d'entrée et sera proche de 1 μA .

Voici une fiche technique ATmega typique utilisée sur Uno / Duemilanove / ... , vous pouvez trouver le paramètre à la page 304. Consultez la fiche technique de votre contrôleur spécifique pour des détails précis.

Si vous utilisez une batterie de 3,7 V et un convertisseur élévateur pour fournir 5 V au contrôleur, vous pouvez connecter la batterie directement à l'entrée analogique de votre contrôleur. Cependant, lorsque la tension de sortie du convertisseur élévateur tombe en dessous de la tension de la batterie (pour une raison quelconque), votre Arduino entier sera alimenté par la broche d'entrée analogique et c'est ce que vous ne voulez pas . Toutes les broches d'entrée sont protégées contre les surtensions, ce qui permet ce comportement, mais les diodes ne sont pas conçues pour des courants continus. En conclusion: il est préférable d'inclure une résistance série entre la batterie et la broche d'entrée.

Mais maintenant, votre mesure repose sur la précision de l'alimentation 5V. Selon le contrôleur exact dont vous disposez, il existe différentes tensions de référence internes disponibles qui sont beaucoup plus précises que la tension d'alimentation. Si vous ajoutez une résistance supplémentaire à la terre (R2), vous pouvez utiliser une telle référence pour mesurer avec précision la tension d'entrée. C'est ce qu'on appelle un diviseur de tension (résistif). Avec le rapport donné, la voltaga sur la broche d'entrée sera de 1 V lorsque la tension de la batterie est de 3,7 V:

Vmeasurement=R2×VBATTR1+R2

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

jippie
la source
1
Donc, en substance, il est possible de le connecter directement à une batterie, mais NON recommandé si le 5v varie. Même si le 5v est régulé et constant?
Ahmed Farid
2
Cela devrait être sûr si le 5V est constant, mais les choses tournent mal donc: mieux vaut prévenir que guérir. Une ou deux résistances sont beaucoup moins chères qu'un nouveau microcontrôleur. L'ingénierie ne consiste pas seulement à faire fonctionner les choses, mais aussi à faire en sorte que les choses continuent de fonctionner comme il faut.
jippie
Une autre question si je peux me permettre: une seule résistance (1K) en parallèle à la batterie n'est-elle pas assez bonne pour empêcher une entrée de courant élevée? (Voir ma deuxième figure)
Ahmed Farid
Non, il ne fait rien d'autre que de tirer la batterie.
jippie
4

Une autre option consiste à utiliser la référence de tension interne de la bande interdite de 1,1 V de l'Arduino pour déterminer la valeur de VCC sans utiliser de pièces externes supplémentaires, comme détaillé sur ces deux liens:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

et

http://arduino.cc/forum/index.php?topic=88935.0

Le seul problème est que vous devez déterminer une valeur d'étalonnage par rapport à la bande interdite interne de 1,1 V, car elle peut être désactivée jusqu'à 10%.

Mais cela ne nécessiterait aucune pièce supplémentaire et permettrait à votre atmega de déterminer la tension de sa source d'alimentation.

Wing Tang Wong
la source
3
Voici un autre article qui explique comment procéder. Le code qu'il utilise est légèrement différent: provideyourown.com/2012/…
ThomasW
@ThomasW nice! Un autre excellent article sur l'utilisation de la bande interdite 1.1v.
Wing Tang Wong