Utiliser un potentiomètre avec un Arduino

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);
}

8 commentaires

  1. Bonjour à tous,
    Je suis nouveau sur votre site et je démarre sur la programmation Arduino aussi je vous sollicite pour vos conseils et je demande votre indulgence sur ma question peut être élémentaire pour vous.
    voici ma question :
    Dans le même code ARDUINO_et t’ il possible de générer un signal carré périodique variable (de 1 à 100hz par potentiomètre ) et de mesurer simultanément sa fréquence ?
    Auriez vos un exemple ?
    A bientôt de vous lire j’espère.
    Merci par avance
    Jacky • jacky.gousart@gmail.com
    PS:jai déjà poser ma question sur votre site, mais je n’ai pas vu apparaitre ma question. Pourquoi ?

  2. Bonjour.
    Je me suis lancé dans un projet diy de control de simulation pour TWS2.
    Je compte utiliser une carte Arduino Leonardo car mon contrôleur fonctionnera comme un clavier.
    J’ai récupéré une ancienne console son. Elle dispose de 5 potentiomètres à glissière de 50 k chacun et de différent bouton et codeur que je vais certainement réutiliser pour des fonctions secondaire comme ouverture des portes…. J’ai testé le hardware avec Leonardo et tout fonctionne bien.
    Pas de soucis pour affecter les boutons et codeurs.

    Par contre en ce qui concerne les potentiomètres, je bute sur de la méconnaissance grave…

    J’aimerais affecter les 5 potentiomètres comme suit:

    Pot 1: Auto Cruise +/-
    Pot 2: Freins indépendant +/-
    Pot 3: Traction +/-
    Pot 4: Freins du train +/-
    Pot 5: Freins dynamique +/-

    Prenons l’exemple du Potentiomètre de traction. Lorsque sa position augmente, il doit effectuer l’appui de la lettre « a » par exemple mais en crans comme un codeur. Et pour corser encore un peu les choses, ce même potentiomètre lorsqu’il est abaissé, doit effecteur l’appui de la lettre « d » de la même manière avec des crans ou … je ne sais pas en fait.

    J’ai cherché les tuto ou autre sur ce qui pourrait m’aider mais sans grand résultat. Je ne recherche peut être pas avec les bon thermes ou objectif. Je sais que la librairie keyboard est nécessaire pour coder cela et je l’utilise déjà pour les boutons et codeur donc cette notion ça va.

    Comment dire à mes « pots. » ce qu’ils doivent faire exactement…?
    Est-ce que parmi vous une personne aurait un ou plusieurs liens pour des informations à ce sujet?
    Un grand merci d’avance pour votre aide.

Rejoignez la conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.