Les potentiomètres

Les potentiomètres sont utilisés pour obtenir une tension réglable en fonction de la course d’un curseur.

Le schéma de principe est le suivant

 

On alimente le potentiomètre en mettant du 5V sur la broche A et la masse sur la broche B.

Le signal de sortie est sur la broche C.

La plupart des potentiomètres sont circulaires (on peut en trouves des linéaires également) : 

Ainsi, en faisant varier la position du curseur, on obtient en sortie du potentiomètre (broche du milieu) une tension qui est l’image de la position du curseur

  • Le curseur est sur une butée : 0V en sortie
  • Le curseur est sur l’autre butée : La tension d’alimentation du potentiomètre en sortie

Cette tension de sortie est lue sur une entrée de la carte Arduino.

Pour lire cette tension, il faut utiliser une des 6 broches analogiques (notée de A0 à A5).

Dans le programme Arduino, on utilise la fonction analogRead(Broche) qui va retourner un nombre compris entre 0 et 1023.

 

-> Pourquoi 1023 ? 

Le composant utilisé par la carte Arduino est un Convertisseur Analogique Numérique (CAN) et convertie une tension en un nombre exprimé sur des puissances de 2 (2,4,8,16,32…)

Un CAN est définie par sa résolution, c’est-à dire le nombre de bits sur lequel la tension est codée. 

Dans le cas de l’Arduino, le CAN est sur 10 bits et 2^10 = 1024 or le 0 est inclus donc la valeur maximale est 1023.

Prenons un exemple : Le CAN est alimenté en 5V et possède une résolution de 10 bits.

  • Si nous injectons une tension de 2.5V, le CAN va sortie la valeur 1023/2 = 512 (valeur retournée par la fonction analogRead
  • Si nous mettons 1 V en entrée d’une broche analogique, le CAN va sortie la valeur 1023/5 = 205

Voici un exemple de schéma pour lire la position d’un potentiomètre : 

Le code minimaliste pour lire le potentiomètre est le suivant : 

 

int potentiometre = A0; //Broche du potentiomètre

void setup() {

Serial.begin(9600); //Communication série à 9600 bauds

}//Fin setup

void loop() {

int value  = analogRead(potentiometre); //lecture du potentiomètre
Serial.println(value); //Affiche la valeur lue
delay(200); //Pause de 200 ms

}//Fin loop