Qu'est ce qu'un potentiomètre ? Comment fonctionne-t-il ? Quand l'utiliser ?

Introduction

Un potentiomètre est une résistance à trois bornes avec un contact rotatif et un contact coulissant qui forme un diviseur de tension.

 Le potentiomètre est constitué d’une résistance de 10 kilo-ohms variable. Cette résistance va bloquer une partie de la tension en fonction de comment on tourne le bouton.

Il y a différents types de potentiomètres :

  • Potentiomètre linéaire : la résistance change dans une relation directe
  • Potentiomètre logarithmique : la résistance change dans une relation logarithmique
  • Potentiomètre exponentielle : la résistance change dans une relation exponentielle

Le potentiomètre est très utilisé dans les radiateurs comme rhéostat, ou pour augmenter ou diminuer le son d’un haut parleur.

Il existe différentes formes de potentiomètre  :

Potentiomètre rotatif :

Potentiomètre coulissant :

Potentiomètre multitours  :

Comment fonctionne un potentiomètre ?

Le potentiomètre est souvent utilisé comme diviseur de tension. Il permet de faire varier la tension entre 0V et 5V.  .

Comme on peut voir ici, on va apporter une consigne en tournant notre bouton du potentiomètre. Ceci va modifier la valeur de la résistance afin de laisser passer plus ou moins de courant.

Voici les pins des potentiomètres :

  • Alimentation 3,3V
  • Le signal analogique
  • La masse GND

Récupérer la valeur du potentiomètre !

On peut récupérer la valeur du potentiomètre en “écoutant” la broche analogique pour laquel le potentiomètre à été branché. Pour cela on utilise la fonction analogRead avec le nom de la broche en paramètre :

analogRead(Nom_de_la_broche);

Quand utiliser un bouton poussoir ou un potentiomètre ?

Utilisez un bouton poussoir pour des entrées discrètes (ON/OFF) et un potentiomètre pour des entrées analogiques en continu. Le choix dépendra des besoins spécifiques de votre projet et des actions que vous souhaitez réaliser. Parfois, vous pouvez même utiliser les deux combinés pour des fonctionnalités plus avancées, par exemple, en utilisant un potentiomètre pour contrôler la vitesse d’un moteur et un bouton poussoir pour le démarrer ou l’arrêter.

Le symbole électrique du potentiomètre !

Voici le symbole du potentiomètre que vous retrouverez dans des circuits électriques.

Faire varier l'intensité d'une LED avec un potentiomètre

Cela ne nécessité pas forcément de code pour fonctionner. Il suffit de mettre le potentiomètre en série avec le composant pour lequel vous voulez que la tension varie, ici la LED. 

Récupérer la valeur d'un potentiomètre

On peut aussi récupérer la valeur du potentiomètre en reliant la broche du milieu à la borne analogique de la carte Arduino. En tournant le potentiomètre, on va donc voir les valeurs varier sur le moniteur série.

int Potentiometre; // Variable pour le composant potentiomètre 

void setup() {
  Serial.begin(9600); //Initialisation du moniteur série
  Serial.println("Voici la valeur du potentiometre :");
}

void loop() {
  Potentiometre = analogRead(A0); // On lit la valeur du potentiomètre
  Potentiometre=map(Potentiometre,0,1023,0,5); // Permet d'obtenir la valeur entre 0V et 5V.
  Serial.print("tension : ");
  Serial.println(Potentiometre);  // On affiche cette valeur
  delay(200); // Pause entre chaque valeur.
}

Voici ce que l’on obtient dans le moniteur série en tournant le potentiomètre :

Vous pouvez ensuite utiliser ces valeurs pour contrôler vos composants…

Contrôler un servomoteur avec un potentiomètre

On va maintenant contrôler un servomoteur avec notre potentiomètre. Pour cela on va relier la broche signal du potentiomètre à la carte Arduino, afin que la carte Arduino lise la valeur de celui-ci et l’envoie au servomoteur, ici grâce à la broche 9 :

Pour simplifier le circuit, nous utilisons la librairie Servo.h. C’est une librairie en .zip qui s’installer depuis Arduino IDE. Si vous voulez de l’aide pour l’ajouter, on vous conseille notre cours sur les librairies.

#include <Servo.h> // La librairie pour utiliser le servomoteur
Servo monServomoteur; // Permet de déclarer le servomoteur
int broche_potentiometre=0; // Permet de déclarer la broche du potentiomètre, qui est A0
int valeur_potentiometre; // Permet de récupérer la valeur du potentiomètre

void setup() {
  monServomoteur.attach(9); // On relie le servomoteur à la broche 9.
}

void loop() {
  valeur_potentiometre = analogRead(broche_potentiometre); // Lit la valeur du potentiomètre
  valeur_potentiometre = map(valeur_potentiometre,0,1023,0,180); // convertis la valeur du potentiomètre en une valeur entre 0 et 180 degrés
  monServomoteur.write(valeur_potentiometre); // On envoit cette valeur au servomoteur poru modifier sa direction
  delay(15); //Pause
}