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