[Résolu] Problème boucle while

Bonjour, je vous met mon code ci-dessous pour vous exposez mon problème. Ce code permet d’entrer une longueur à trois chiffre à l’aide d’un clavier matriciel puis de stocker ce chiffre en une variable.

Mon problème est que lorsque je suis arrivé au niveau de “Erreur saisie?” et que je réponds non (je rentre 2 sur le clavier matriciel) le moniteur ne m’affiche pas “Pas trompé longueur” et refait une boucle. Le programme ne sort donc pas de la boucle while alors que je change la valeur de la variable “trompe”.

#include <Keypad.h>


const byte numRows= 4; //number of rows on the keypad
const byte numCols= 3; //number of columns on the keypad

//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {8,7,6,5}; //Rows 0 to 4
byte colPins[numCols]= {4,3,2}; //Columns 0 to 3

//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

void setup()
{
Serial.begin(9600);

}


void loop()
{
char trompe=1+48; 
while(trompe == 1+48)  
{
Serial.println(trompe); 
Serial.println("Entrez la longueur (cm):");  
Serial.println("Instruction : Tapez '*' pour commencer la saisie et tapez '#' pour terminer la saisie");  
char key = myKeypad.getKey();
while(key != '*')
{
key=myKeypad.getKey();
}
Serial.println('*');
  
char x1=myKeypad.getKey();
  while(x1 == NO_KEY)x1=myKeypad.getKey();    // 1er chiffre tappé
Serial.println(x1);

char x2=myKeypad.getKey();
  while(x2 == NO_KEY)x2=myKeypad.getKey();    // 2eme chiffre tappé
Serial.println(x2);

char x3=myKeypad.getKey();
  while(x3 == NO_KEY)x3=myKeypad.getKey();    // 3eme chiffre tappé
Serial.println(x3);

char ok = myKeypad.getKey();
while(ok != '#')
{
ok=myKeypad.getKey();
}

int L = ((x1-48)*100)+((x2-48)*10)+(x3-48);   // On rasemble le 1er, 2eme et 3eme chiffre en une seule variable
Serial.println(L);

Serial.println("Erreur de saisie ?");
Serial.println("1 : OUI");
Serial.println("2 : NON");

char trompe = myKeypad.getKey();
  while(trompe == NO_KEY)trompe=myKeypad.getKey();

Serial.println(trompe);
delay(5000);
}

Serial.println("Pas trompé longueur"); 


}

Voilà je voulais savoir si j’ai fait une erreur car sa fait plus d’une heure que je cherche sans succès,
Merci,
Mixlu.

hello
au debut de ta loop tu déclares “trompe”

et tu t’en sert pour mettre une condition

void loop()
{
char trompe=1+48;

et pour sortir de la condition tu fais le test sur une variable du meme nom que tu as de nouveau déclarée
le test lui porte sur la 1ere variable

char trompe = myKeypad.getKey();
  while(trompe == NO_KEY)trompe=myKeypad.getKey();

il faut virer le char devant le “trompe” du char trompe = myKeypad.getKey(); en ligne 70

afin de travailler avec le meme “trompe” pendant tout le prg

Ah mais oui bien sûr !
Merci beaucoup de ton aide cela fonctionne maintenant.