C’est quoi… une tension de référence ?

4.6
(14)

Cet article explique ce qu’est une tension de référence, et comment utiliser une tension de référence interne ou externe (LM4040, TL431…) avec un Arduino.

L’Arduino Uno possède 6 entrées analogiques, que l’on peut lire dans un programme (croquis) grâce à la fonction :

analogRead()

Le convertisseur analogique-numérique (CAN) de l’Arduino convertit la tension d’entrée de la broche analogique en une valeur numérique sur 10 bits (0 à 1023). La valeur 0 correspond à une tension d’entrée de 0 V. La valeur 1023 correspond à la tension de référence utilisée par le convertisseur analogique-numérique.

La tension de référence est donc la tension qui est utilisée comme valeur maximale de la tension de l’entrée par le convertisseur analogique-numérique.

Par défaut la tension de référence de l’Arduino Uno est sa tension d’alimentation. Si l’Arduino Uno est alimenté par la prise USB, cette tension de référence ne sera pas précise. Une alimentation USB est de 5 V ± 5%, soit de 4,75 V à 5,25 V. Pour avoir une bonne précision sur la lecture d’une entrée analogique, il faut utiliser une tension de référence précise également.

Pour avoir une tension de référence précise il y a plusieurs solutions avec l’Arduino Uno :

  • Alimenter l’Arduino par le jack ou la broche Vin car le régulateur interne de 5 V est plus précis que l’alimentation USB en général
  • Utiliser la tension de référence interne de 1,1 V
  • Utiliser une tension de référence externe

Tension de référence interne de 1,1 V

Cette tension de référence de 1,1 V est interne au micro-contrôleur ATmega328P. Elle est indépendante de la tension d’alimentation de l’Arduino Uno. Il suffit d’appeler la fonction :

analogReference(INTERNAL)

pour l’utiliser comme tension de référence pour le convertisseur analogique-numérique.

Attention : Cette tension interne n’est pas exactement de 1,1 V et elle est différente pour chaque micro-contrôleur. Afin d’avoir une mesure la plus précise possible des entrées analogiques, je vous conseille de mesurer la valeur de cette tension interne. Il suffit de mesurer la tension sur la broche AREF à l’aide d’un voltmètre. la tension de référence est envoyée sur la broche AREF lorsque l’Arduino n’est pas configuré pour utiliser une tension de référence externe.

Ensuite il suffit de calculer la valeur de la tension de l’entrée analogique en utilisant la formule :

#define REFERENCE_INTERNE 1.098 // mesurée avec un voltmètre sur la broche AREF de l'Arduino UNO
float tension = analogRead(INTERNAL) * (REFERENCE_INTERNE / 1023)

Tension de référence externe

Si vous avez la possibilité d’utiliser une tension de référence externe, c’est la meilleure solution pour assurer une grande précision dans la mesure des entrées analogiques.

Le LM4040 apporte une précision de 0,1% et offre une excellente tension de référence externe pour l’Arduino

Il suffit de relier la référence de tension externe sur la broche AREF de l’Arduino UNO et de configurer le convertisseur en appelant la fonction :

analogReference(EXTERNAL)

Voici une vidéo qui démontre l’intérêt du composant LM4040 comme référence de tension externe sur un Arduino Uno :

Le régulateur de tension TL431 est un composant souvent utilisé comme référence de tension. Son prix est attractif et il est possible de configurer la tension de référence dans une plage de 2,50 V à 36 V.

Le plus simple et le moins coûteux est d’utiliser le TL431 comme une référence de tension de 2,5 V. La résistance de 1 kΩ assure un courant de cathode IKA de 2,5 mA qui correspond bien à la plage de valeurs indiquée dans la fiche technique du composant (1 à 100 mA).

TL431 régulateur de tension 2,5V

Attention : L’Arduino Uno possède un condensateur de 100 nF entre AREF et GND, ce qui rend le TL431 totalement instable (voir captures d’écran en bas de l’article). Ce comportement du TL431 est parfaitement décrit dans cette note de TI. Avec un Arduino Uno, il faut donc ajouter un condensateur de 10 μF entre la sortie VREF du composant et la masse.

TL431 avec condensateur entre VREF et GND

Il suffit ensuite de relier la broche 1 du TL431 (REF) sur l’entrée AREF de l’Arduino pour avoir une référence externe de 2,5 V.

Référence de tension externe 2,5 V avec un TL431 sur Arduino Uno

L’avantage de l’utilisation de cette référence externe de 2,5 V par rapport à la référence interne de 1,1 V de l’Arduino est que sa précision est bien meilleure (1%). De plus il n’est pas nécessaire de calibrer cette tension de référence. Ce type de référence de tension externe est utilisé dans le tutoriel sur le Testeur de pile.

Captures d’écran de l’oscilloscope pour montrer l’instabilité de AREF sur Arduino Uno avec un composant TL431

TL431 Arduino AREF sans capacité
Instabilité de AREF sur Arduino Uno avec l’utilisation du TL431 sans condensateur ajouté entre VREF et GND
TL431 AREF Arduino stable avec condensateur 10 uF
Avec un condensateur de 10 μF entre VREF et GND, AREF est stable sur Arduino Uno avec l’utilisation du TL431

Votre avis compte, merci 🙂

Cliquez sur une étoile pour voter

Note moyenne : 4.6 / 5. Nombre de votes : 14

Pas encore de vote pour ce tutoriel

Désolé si cet article ne vous a pas intéressé

Merci de commenter afin que je puisse l’améliorer.

Dites-moi comment améliorer cette page.