Un potentiomètre est un bouton qui fournit une résistance variable. Les valeurs des potentiomètres sont envoyés dans l’Arduino sous un signal analogique.

Le potentiomètre possède 3 broches :
– Une alimentation (généralement, nous utilisons le +5V délivré par l’Arduino)
– Une sortie analogique
– Une masse

En tournant l’axe du potentiomètre, nous modifions la résistance vers l’interface de sortie. L’entrée analogique de l’Arduino Uno est codé sur 10 bits (210 = 1024 valeurs). Quand nous envoyons la tension en sortie du potentiomètre vers l’entrée de l’Arduino, celle-ci va être convertie en un nombre numérique.

Pour une alimentation de 5V :

0V –> 0
5V –> 1023

Attention, la valeur du potentiomètre, alimenté sous 5V ici, devrait varier entre 0 et 1023. Mais certains potentiomètres ne renvoient pas un ‘0’ lorsqu’ils sont tournés au minimum, et ‘1023’ lorsqu’ils sont tournés au maximum.

Il faudra donc effectuer un essai afin de visualiser la valeur minimum et maximum.

La commande permettant de lire une entrée analogique est :

analogRead(Nom_de_la_broche);

Ce code permet de récupérer la valeur du potentiomètre, et de l’afficher dans le moniteur série.

Câblage :

Code :

 // Initialise la variable qui va recueillir la valeur du potentiomètre
int Pot; 

void setup() {
  Serial.begin(9600); //Initialise la communication entre le PC et Arduino
}

void loop() {
  // Lire la valeur du potentiomètre
  Pot = analogRead(A0); 

  //Affiche la valeur du potentiomètre sur le moniteur série
  Serial.println(Pot);  

  //Pause de 200 millisecondes
  delay(200); 
}

 


 

Ce second code permet de modifier la luminosité d’une led, en fonction de la valeur du potentiomètre.

Câblage :

Code :

 // Initialise la variable qui va recueillir la valeur du potentiomètre
int Pot; 

// Initialise la variable de la led
int led = 13;

// Initialise la variable qui permettra d'envoyer le bon rapport cyclique à la led
int Val_led;

void setup() {
  Serial.begin(9600); //Initialise la communication entre le PC et Arduino
}

void loop() {
  // Lire la valeur du potentiomètre
  Pot = analogRead(A0); 

  //Affiche la valeur du potentiomètre sur le moniteur série
  Serial.println(Pot);  

  // Discrétise la valeur du potentiomètre et l'assigne à la valeur de la luminisoté de la LED
  Val_led = map(Pot, 0, 1023, 0, 255);   

  // Envoyer la valeur du potentiomètre à la led  
  analogWrite(led,Val_led);              

  //Pause de 200 millisecondes
  delay(200); 
}