bonjour à vous,
voila quasiment 1 heure que je galère avec une boucle

le but final de la programmation est de configurer le temps d'un compte à rebours, format hh/mm/ss
du coup 6 variables h1,h2.....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
//declaration des variables pour le compteur
int h1=0;
int h2=0;
int m1=0;
int m2=0;
int s1=0;
int s2=0;
je déclare le clavier et configuration

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
#include <Keypad.h>
const byte ROWS = 4; //4 lignes
const byte COLS = 4; //4 colonnes
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
//Brancher le clavier sur 9 10 11 12 (colonnes) et 5 6 7 8 (lignes)
byte rowPins[ROWS] = {5, 6,7, 8}; //Lignes
byte colPins[COLS] = {9,10, 11, 12}; //Colonnes
 
 
// Initialiser une instance de la classe keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
  Serial.begin(9600);   //Serial monitor
  Serial.println("Test de clavier 16 touches");
 
  // Pour activer l'état HOLD
  unsigned int time_hold = 4;
  keypad.setHoldTime(time_hold);
 
  //Anti rebond
  unsigned int time_anti_rebond = 4;  //4 ms
  keypad.setDebounceTime(time_anti_rebond);
}
viens le moment où ça ne fonctionne plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void loop()
{
  for (int i = 1; i < 7; i++) 
{
  char key = keypad.getKey();
  if (key != NO_KEY)
  {   
   Serial.print(i);
  }
 }
 
}
quand je lance le programme, dans l'écran ça met un chiffre hasardeux et non croissant.
si je déplace "char key = keypad.getKey();" avant le for,
alors j'obtiens la suite 123456 sans avoir d'action sur le clavier.

idéalement, je voudrais que quand i==1 alors h1 prend la valeur de key, puis i==2 alors h2=key…..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if (i==1)
{
h1==key;
}
je n'y comprends rien, merci pour votre aide
PS, les branchements du clavier sont ok, sans la boucle for, j'obtiens les bonnes touches