Exemple
Application : exemple d’utilisation
Le potentiomètre
Le potentiomètre est un composant très fréquemment employé en électronique. On le retrouve aussi sous le nom de résistance variable. Comme ce dernier nom l’indique si bien, un potentiomètre nous permet entre autres de réaliser une résistance variable. En effet, on retrouve deux applications principales que je vais vous présenter juste après. Avant toute chose, voici le symbole du potentiomètre :

Figure 12 : Symbole du potentiomètre
Cas n°1 : le pont diviseur de tension
On y remarque une première chose importante, le potentiomètre a trois broches.
Deux servent à borner les tensions maximum (A) et minimum (B) que l’on peut obtenir à ses bornes, et la troisième est reliée à un curseur mobile qui donne la tension variable obtenue entre les bornes précédemment fixées.
Ainsi, on peut représenter notre premier cas d’utilisation comme un "diviseur de tension réglable". En effet, lorsque vous déplacez le curseur, en interne cela équivaut à modifier le point milieu.
En termes électroniques, vous pouvez imaginer avoir deux résistances en série (R1 et R2 pour être original). Lorsque vous déplacez votre curseur vers la borne basse, R1 augmente alors que R2 diminue et lorsque vous déplacez votre curseur vers la borne haute, R2 augmente alors que R1 diminue.
Voici un tableau montrant quelques cas de figure de manière schématique :
|
Schéma équivalent |
Position du curseur |
Tension sur la broche C |
||
|
|
Curseur à la moitié |
Vsignal=(1−50100)×5=2.5V |
||
|
|
Curseur à 25% du départ |
Vsignal=(1−25100)×5=3.75V |
||
|
|
Curseur à 75% du départ |
Vsignal=(1−75100)×5=1.25V |
Schéma du pont diviseur de tension
Formule associé au pont diviseur de tension :
R1 et R2 sont montées en série, donc :
Us = U * R2 / (R1 + R2)
Cas n°2 : la résistance variable
Le deuxième cas d’utilisation du potentiomètre est la résistance variable . Cette configuration est très simple, il suffit d’utiliser le potentiomètre comme une simple résistance dont les bornes sont A et C ou B et C. On pourra alors faire varier la valeur ohmique de la résistance grâce à l’axe du potentiomètre.
Attention, il existe des potentiomètres linéaires (la valeur de la tension évolue de manière proportionnelle au déplacement du curseur), mais aussi des potentiomètres logarithmique/anti-logarithmique (la valeur de la tension évolue de manière logarithmique ou anti-logarithmique par rapport à la position du curseur). Choisissez-en dont un qui est linéaire si vous souhaitez avoir une proportionnalité.
Utilisation avec Arduino
Vous allez voir que l’utilisation avec Arduino n’est pas vraiment compliquée. Il va nous suffire de raccorder les alimentations sur les bornes extrêmes du potentiomètre, puis de relier la broche du milieu sur une entrée analogique de la carte Arduino :
Potentiomètre - Schéma
Potentiomètre - Montage
Une fois le raccordement fait, nous allons faire un petit programme pour tester cela. Ce programme va simplement effectuer une mesure de la tension obtenue sur le potentiomètre, puis envoyer la valeur lue sur la liaison série (ça nous fera réviser
). Dans l’ordre, voici les choses à faire :
- Déclarer la broche analogique utilisée (pour faire du code propre )
- Mesurer la valeur
- L’afficher !
Je vous laisse chercher ? Aller, au boulot !
… Voici la correction, c’est le programme que j’ai fait, peut-être que le vôtre sera mieux :
// le potentiomètre, branché sur la broche analogique 0
const int potar = 0;
// variable pour stocker la valeur lue après conversion
int valeurLue;
// on convertit cette valeur en une tension
float tension;
void setup()
{
// on se contente de démarrer la liaison série
Serial.begin(9600);
}
void loop()
{
// on convertit en nombre binaire la tension lue en sortie du potentiomètre
valeurLue = analogRead(potar);
// on traduit la valeur brute en tension (produit en croix)
tension = valeurLue * 5.0 / 1023;
// on affiche la valeur lue sur la liaison série
Serial.print("valeurLue = ");
Serial.println(valeurLue);
// on affiche la tension calculée
Serial.print("Tension = ");
Serial.print(tension,2);
Serial.println(" V");
// on saute une ligne entre deux affichages
Serial.println();
// on attend une demi-seconde pour que l'affichage ne soit pas trop rapide
delay(500);
}
Voltmètre simple
Vous venez de créer votre premier voltmètre ! 
Simulation équivalente :
Une meilleure précision ?
Est-il possible d’améliorer la précision du convertisseur ?
Voilà une question intéressante à laquelle je répondrai qu’il existe deux solutions plus ou moins faciles à mettre en œuvre.
Solution 1 : modifier la plage d’entrée du convertisseur
C’est la solution la plus simple ! Voyons deux choses…
Tension de référence interne
Le micro-contrôleur de l’Arduino possède plusieurs tensions de référence utilisables selon la plage de variation de la tension que l’on veut mesurer. Prenons une tension, en sortie d’un capteur, qui variera entre 0V et 1V et jamais au delà. Par défaut, la mesure se fera entre 0 et 5V sur 1024 niveaux (soit une précision de 4.88 mV). Ce qui veut dire qu’on aura seulement les 204 premiers niveaux d’utiles puisque tout le reste correspondra à plus d’un volt. Pour améliorer la précision de lecture, on va réduire la plage de mesure d’entrée du convertisseur analogique - > numérique en réduisant la tension de référence utilisée (initialement 5V). Pour cela, rien de matériel, tout se passe au niveau du programme puisqu’il y a une fonction qui existe : analogReference() . Cette fonction prend en paramètre le nom de la référence à utiliser :
- DEFAULT : La référence de 5V par défaut (ou 3,3V pour les cartes Arduino fonctionnant sous cette tension, telle la Due)
- INTERNAL : Une référence interne de 1.1V (pour la Arduino Uno)
- INTERNAL1V1 : Comme ci-dessus mais pour la Arduino Mega
- INTERNAL2V56 : Une référence de 2.56V (uniquement pour la Mega)
- EXTERNAL : La référence sera celle appliquée sur la broche ARef
Dans notre cas, le plus intéressant sera de prendre la valeur INTERNAL pour pouvoir faire des mesures entre 0 et 1.1V. Ainsi, on aura 1024 niveaux ce qui nous fera une précision de 1.07mV. C’est bien meilleur ! Le code est à placer dans la fonction setup() de votre programme :
void setup()
{
// permet de choisir une tension de référence de 1.1V
analogReference(INTERNAL);
}
Changement de la référence : INTERNAL
Tension de référence externe
Maintenant que se passe t’il si notre mesure devait être faite entre 0 et 3V ? On ne pourrait plus utiliser INTERNA1V1 puisqu’on dépasse les 1.1V. On risquerais alors de griller le comparateur. Dans le cas d’une Arduino Mega, on ne peut pas non plus utiliser INTERNAL2V56 puisqu’on dépasse les 2.56V. Nous allons donc ruser en prenant une référence externe à l’aide de la valeur EXTERNAL comme ceci :
void setup()
{
// permet de choisir une tension de référence externe à la carte
analogReference(EXTERNAL);
}
Changement de la référence : EXTERNAL
Ensuite, il ne restera plus qu’à apporter une tension de référence supérieur à 3V sur la broche ARef de la carte pour obtenir notre nouvelle référence.
Astuce : la carte Arduino produit une tension de 3.3V (à côté de la tension 5V). Vous pouvez donc utiliser cette tension directement pour la tension de référence du convertisseur.
Il suffit pour cela de relier avec un fil la sortie indiquée 3.3V à l’entrée AREF.
Attention cependant, la tension maximale de référence ne peut être supérieure à +5V et la minimale inférieure à 0V . En revanche, toutes les tensions comprises entre ces deux valeurs sont acceptables.
Mais, si je veux que ma tension d’entrée puisse varier au-delà de +5V, comment je fais ? Y a-t-il un moyen d’y parvenir ? 
Oui, voyez ce qui suit…
Schéma du pont diviseur de tension
Solution 2 : utiliser un pont diviseur de tension
Nous avons vu cela à la partie précédente avec le potentiomètre. Il s’agit en fait de diviser votre signal par un certain ratio afin de l’adapter aux contraintes d’entrées du convertisseur. Par exemple, imaginons que nous ayons une mesure à faire sur un appareil qui délivre une tension comprise entre 0 et 10V. Cela ne nous arrange pas puisque nous ne sommes capable de lire des valeurs qu’entre 0 et 5V. Nous allons donc diviser cette mesure par deux afin de pouvoir la lire sans risque. Pour cela, on utilisera deux résistances de valeur identique (2 fois 10kΩ
par exemple) pour faire un pont diviseur de tension. La tension à mesurer rentre dans le pont ( U sur le schéma ci-contre) et la tension mesurable sort au milieu du pont (tension Us
). Il ne reste plus qu’à connecter la sortie du pont à une entrée analogique de la carte Arduino et lire la valeur de la tension de sortie.
Libre à vous de modifier les valeurs des résistances du pont diviseur de tension pour faire rentrer des tensions différentes (même au delà de 10V !). Attention cependant à ne pas dépasser les +5V en sortie du pont !
Solution 3 : utiliser un CAN externe
La deuxième solution consisterait simplement en l’utilisation d’un convertisseur analogique -> numérique externe. A vous de choisir le bon. Il en existe beaucoup, ce qu’il faut principalement regarder c’est :
- la précision (10 bits pour Arduino, existe d’autre en 12bits, 16bits, …)
- la vitesse d’acquisition (celui d’Arduino est à une vitesse de 100µs)
- le mode de transfert de la lecture (liaison série, I²C, …)
- le nombre d’entrées (6 sur Arduino Uno)
- la tension d’entrée maximale et minimale (max +5V et min 0V)
Au programme :
- Le prochain chapitre est un TP faisant usage de ces voies analogiques
- Le chapitre qui le suit est un chapitre qui vous permettra de créer des tensions analogiques avec votre carte Arduino, idéal pour mettre en œuvre la deuxième solution d’amélioration de la précision de lecteur du convertisseur !
En somme, ce chapitre vous a permis de vous familiariser un peu avec les tensions analogiques, ce qui vous permettra par la suite de gérer plus facilement les grandeurs renvoyées par des capteurs quelconques.
Créé avec HelpNDoc Personal Edition: Générateur gratuit de livres électroniques et documentation


