Retour étape précédente

Bonjour à tous,

Je développe un système et pour cela j'utilise arduino. Une partie de l'algorithme demande à l'utilisateur d'appuyer sur un clavier matriciel:

void loop()
{
char key = kpd.getKey();
 if(key)  
  {
    switch (key)
    {
      case '1' || '2' || '3' || '4' || '5'|| '6':
      char key = kpd.getKey();
      if(key)  
       {
       switch (key)
       { 
       case '1' || '2' || '3' ||
       ACTION
       break;
       default;
????
     break;  
        
        default:
????
    }
  }
}

Comme on peut le voir c'est en trois étapes. L'utilisateur appuie d'abord sur une touche du clavier puis en sélectionne une autre. Là arrive l'action. A la place des ???? comment coder le fait que si la personne n'appuie pas sur les bonnes touche, il y ait un balayage constant du clavier? Une simple bouche <hile suffirait-elle?
Ensuite après l'action il faudrait que l'algorithme recommence dès la première étape, c'est à dire au moment où l'utilisateur sélectionne pour la première fois une touche sur le clavier. Comment faire?

Merci beaucoup.

Alexis.

Ba tu laisse ton default vide et ton programme va revenir au début de ton premier switch tout seul :grin:

Les deux default?

Oui si par défaut tu ne veux pas faire d'action.

Si je ne dis pas de bêtise, l'utilisateur n'aura pas le temps de choisir la seconde option.
Après ton premier switch tu redemandes une lecture de touche sur ton clavier, or le programme va tellement vite qu'il va retourner 0 et revenir sur l'attente principal du if.

Si tu veux bouclé indéfiniment dans l'attente d'un appuie sur ton clavier, tu as une fonction intégré dans la librairie Keypad qui s'appelle WaitforKey() .

Bon courage

Clément