Blue Flower

Dans cet article, nous allons voir comment utiliser un potentiomètre à l'aide des entrées analogiques.

Un potentiomètre possède une résistance variable que l'on règle via le potentiomètre, ainsi on peut faire varier la tension à la sortie du potentiomètre.

Arduino peut mesurer des grandeurs analogiques, plus précisément la valeur analogique sera restituée par une valeur comprise entre 1 à 1023 grâce au convertisseur analogique vers numérique (CAN) d'Arduino.

 

 

Lecture analogique

Pour connaître la valeur analogique à la sortie du potentiomètre, il faut simplement utiliser analogRead(le numéro de la broche analogique) qui renverra un entier compris entre 0 et 1023 : analogValue=analogRead(brochePotentiometre) 

A vous de convertir cette valeur en une tension, sachant qu'à la tension de 5V délivrée par arduino correspondra une valeur analogique de 1023, et 0V correspondra à une valeur analogique de 0

  • par une règle de 3 : tension = analogValue*5/1023
  • par la fonction map : tension = map(analogValue, 0, 1023, 0, 5000); //5000 pour 5000 mV car si on prend 5V, le résultat sera un entier compris entre 0 et 5, donc un résultat pas très précis.

 

Ci-dessous le code en alimentant le potentiomètre en 5V et en branchant la sortie du potentiomètre sur la broche A0 .

// 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 à l'aide de map
    tension = map(valeurLue, 0, 1023, 0, 5000); //conversion de la valeur lue en tension en mV
    // on convertit de mV à Volt
    tension = tension/1000 ;
    
    //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);
}

 

Bibliographie

Le blog d'Eskimon à propos des entrées analogiques d'où provient le code ci-dessus : http://eskimon.fr/110-arduino-401-les-entrees-analogiques-de-larduino