Modification de valeur de variable dans un menu.

Bonjour, vous allez certainement trouver cela nul mais je n’arrive pas à changer les valeurs de variable à partir de bouton.
je vous explique l’ensemble est composé d’un arduino mega d’une sonde température de relais électrique et d’un écran lcd 16*2 ayant des boutons sur la platine. (rien de bien extraordinaire pour vous).
mon but est de maintenir une température quasi constante dans une couveuse pour larve d’abeille.

le programme est écrit comme cela:

1 page mini cordon 1
2 page maxi cordon 1
3 page mini cordon 2
4 page maxi cordon 2
5 page mesure et affichage de la température

dans les menu de 1 a 4 une variable différente est affiché et je n’arrive pas à la changer.

void Mini_cordon_1(){
ReadKeypad();
lcd.clear();
lcd.setCursor(0,0);lcd.print(“Mini Cordon 1:”);
lcd.setCursor(1,1);lcd.print(mini_cordon_1);
if(ReadKeypad()== ‘R’){ mini_cordon_1++; lcd.setCursor(1,1);lcd.print(mini_cordon_1);delay(65); } //si la touche “R” est activé j’augmente al variable
if(ReadKeypad()== ‘L’){ mini_cordon_1–; lcd.setCursor(1,1);lcd.print(mini_cordon_1);delay(65); } //si la touche “L” est activé je diminue la variable

j’arrive à naviguer dans le menu mais impossible de modifier une valeur.

Si vous avez une piste, je suis preneur. :slight_smile:

merci

essai_dimanche.ino.ino (3.47 KB)

Personne n'a de piste?

C'est à dire que déjà le code ne compile pas. Il y a une variable non définie. Variable qui n'est d'ailleurs pas utilisée. il faudrait faire imprimer ce que retourne ReadKeypad() pour comprendre ce qui se passe. Une seule lecture de ReadKeypad() serait peut-être plus judicieux.

void Mini_cordon_1(){    
   
    lcd.clear();
    lcd.setCursor(0,0);lcd.print("Mini Cordon 1:");
    lcd.setCursor(1,1);lcd.print(mini_cordon_1);
    char touche=ReadKeypad();
    Serial.println(touche); // pour voir ce qui se passe
    if(touche== 'R'){ mini_cordon_1++; lcd.setCursor(1,1);lcd.print(mini_cordon_1);delay(65);  } //si la touche "R" est activé
    if(touche== 'L'){ mini_cordon_1--; lcd.setCursor(1,1);lcd.print(mini_cordon_1);delay(65);   } //si la touche "L" est activé 
    
}