Comment mesurer la tension Arduino?

Comment mesurer la tension Arduino?

Mesurer la tension du réseau arduino

Il y a de nombreuses raisons pour lesquelles vous pouvez vouloir utiliser un microcontrôleur pour mesurer la tension et le courant continu. Vous pouvez surveiller la sortie d’un générateur ou d’un panneau solaire, mesurer la consommation de courant de votre projet ou observer le chargement et le déchargement d’une batterie.

Dans cet article, je vais vous montrer comment mesurer la tension et le courant continu à l’aide d’un Arduino. Les techniques présentées ici s’appliquent à n’importe quel microcontrôleur, en fait des appareils comme l’ESP-32 ou le Seeeduino XIAO peuvent réaliser de meilleures mesures de tension continue car ils ont des convertisseurs analogiques-numériques avec une résolution plus élevée.

La mesure de la tension continue avec un microcontrôleur (ou tout autre dispositif de données numériques) nécessite l’utilisation d’un convertisseur analogique-numérique (CAN). De nombreux microcontrôleurs modernes, y compris l’Arduino Uno, ont un CAN intégré, ce qui fait de la mesure de la tension continue la plus simple de nos quatre tâches.

Un convertisseur analogique-numérique est exactement ce à quoi il ressemble. C’est un composant qui accepte une entrée analogique et produit une sortie numérique, la sortie étant une représentation numérique du niveau de l’entrée.

Arduino mesure la tension de la batterie

Connectez les trois fils du potentiomètre à votre carte. Le premier est relié à la terre par l’une des broches extérieures du potentiomètre. Le deuxième va à 5 volts à partir de l’autre broche extérieure du potentiomètre. Le troisième relie la broche centrale du potentiomètre à l’entrée analogique 0. En tournant l’axe du potentiomètre, vous modifiez la quantité de résistance de chaque côté du curseur connecté à la broche centrale du potentiomètre. Cela modifie la tension au niveau de la broche centrale. Lorsque la résistance entre le centre et le côté connecté à 5 volts est proche de zéro (et que la résistance de l’autre côté est proche de 10 kilohms), la tension sur la broche centrale est proche de 5 volts. Lorsque les résistances sont inversées, la tension de la broche centrale est proche de 0 volt, ou de la masse. Cette tension est la tension analogique que vous lisez en entrée. Le microcontrôleur de la carte comporte un circuit appelé convertisseur analogique-numérique ou CAN qui lit cette tension variable et la convertit en un nombre compris entre 0 et 1023. Lorsque l’arbre est tourné à fond dans une direction, 0 volt est appliqué à la broche et la valeur d’entrée est 0. Lorsque l’arbre est tourné à fond dans la direction opposée, 5 volts sont appliqués à la broche et la valeur d’entrée est 1023. Entre les deux, analogRead() renvoie un nombre compris entre 0 et 1023 qui est proportionnel à la quantité de tension appliquée à la broche.

  Comment fonctionne un détecteur de mouvement sans fil?

Sortie tension Arduino

Cela nous amène à penser qu’une lecture de 0 correspond à une entrée de 0,000V ; et 1023 correspond à une tension d’entrée de 5,000 volts.    Ce n’est pas tout à fait vrai. Regardons la fiche technique et voyons ce qu’elle nous dit.

Le microcontrôleur Arduino est équipé d’un convertisseur analogique-numérique (CAN) de type approximation successive qui a les spécifications suivantes.    Les références indiquées entre parenthèses ainsi (2 : 26.1) renvoient à des sections de la fiche technique de l’AtMega 2560.

La précision de la référence par rapport à laquelle la tension est mesurée – en utilisant n’importe laquelle des références ci-dessus – n’est au mieux que de 5,25 – 5,0/5,0 * 100 = 5% – bien pire que les 0,25% fournis par l’ADC.    Il est clair que si nous souhaitons mesurer des tensions avec la précision fournie par l’Arduino, les références intégrées ne sont pas assez bonnes. Le diagramme ci-dessous montre ces erreurs en comparaison avec une référence de 4.096V décrite ci-dessous.

Normalement, la résistance modifiera la tension utilisée comme référence car il y a une résistance interne d’environ 32K sur la broche AREF. Les deux agissent comme un diviseur de tension, donc, par exemple, 5V appliqué à travers la résistance donnera 5 * 32 / (32 + 4.7) = ~4.4V à la broche AREF.

Capteur de tension Arduino

Cela nous amène à penser qu’une lecture de 0 correspond à une entrée de 0.000V ; et 1023 correspond à une tension d’entrée de 5.000 volts.    Ce n’est pas tout à fait vrai. Regardons la fiche technique et voyons ce qu’elle nous dit.

  Comment programmer un module Bluetooth Arduino?

Le microcontrôleur Arduino est équipé d’un convertisseur analogique-numérique (CAN) de type approximation successive qui a les spécifications suivantes.    Les références indiquées entre parenthèses ainsi (2 : 26.1) renvoient à des sections de la fiche technique de l’AtMega 2560.

La précision de la référence par rapport à laquelle la tension est mesurée – en utilisant n’importe laquelle des références ci-dessus – n’est au mieux que de 5,25 – 5,0/5,0 * 100 = 5% – bien pire que les 0,25% fournis par l’ADC.    Il est clair que si nous souhaitons mesurer des tensions avec la précision fournie par l’Arduino, les références intégrées ne sont pas assez bonnes. Le diagramme ci-dessous montre ces erreurs en comparaison avec une référence de 4.096V décrite ci-dessous.

Normalement, la résistance modifiera la tension utilisée comme référence car il y a une résistance interne d’environ 32K sur la broche AREF. Les deux agissent comme un diviseur de tension, donc, par exemple, 5V appliqué à travers la résistance donnera 5 * 32 / (32 + 4.7) = ~4.4V à la broche AREF.