Valeur d'un potentiometre ajustable par bouton + et -

Bonjour,

Je voudrais pouvoir choisir une vitesse d'un moteur à l'aide d'un potentiomètre que j'affiche en plus sur un écran LCD.
Sauf que mon potentiomètre n'est pas super précis et que la plage de valeur assez grande...
Je voudrais ajuster la valeur plus finement avec deux boutons + et -.

Cela fonctionne presque. Lorsque j'appuie sur les boutons + ou - la valeur du potentiomètre change bien mais dès que je relâche le bouton, elle revient à sa valeur initiale. Je ne sais pas comment mémoriser cette nouvelle valeur.

Merci pour votre aide!

#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);
//  Définition des constantes
const int btn_minus = 8;
const int btn_plus = 9;
const int potentiometre = 0;    // Pin potentometre

// Declaration des variables
int etat_Bouton;
int memoire_plus = HIGH; //état relâché par défaut
int memoire_minus = HIGH;

void setup()
{
   pinMode(btn_plus, INPUT);
   pinMode(btn_minus, INPUT);
     //reglage LCD
    analogWrite(6, 120); 
    lcd.begin(16,2);
}

void loop()
{
  int niveauPot=analogRead(potentiometre);
  int motor_Speed = map(niveauPot, 0, 1023, 0, 3600);

  etat_Bouton = digitalRead(btn_plus); //lecture de l'état du bouton d'incrémentation       
    //Si le bouton a un état différent que celui enregistré ET que cet état est "appuyé"
    if((etat_Bouton != memoire_plus) && (etat_Bouton == LOW))     {
        motor_Speed++; 
    }
    memoire_plus = etat_Bouton; //on enregistre l'état du bouton pour le tour suivant    
    
  etat_Bouton = digitalRead(btn_minus); //lecture de son état 
    //Si le bouton a un état différent que celui enregistré ET que cet état est "appuyé"
    if((etat_Bouton != memoire_minus) && (etat_Bouton == LOW))     {
        motor_Speed--; 
    }
    memoire_minus = etat_Bouton; //on enregistre l'état du bouton pour le tour suivant
   
  lcd.setCursor(0,0);
  lcd.print("v= ");
  lcd.print(motor_Speed);
  lcd.print (" mm/h");;   
  delay(500);
  lcd.clear(); 
}

bonjour,
c'est logique ton problème.
à chaque boucle tu lis la valeur de ton potard, donc motor-Speed reprend cette valeur.

tu veux donner la priorité à quoi? ton potard ou ton bouton?

Une solution serait que tes boutons incrémentent et décrémentent une valeur appelé par exemple delta.

dans la boucle, il faudra lire la valeur du potentiometre puis y ajouter la valeur delta.

Ex: ValeurPot=analogread(Ax)+Delta;

A essayer.

Yan_duino.

Merci pour vos réponses. La solution de Yan_duino fonctionne nickel!!!