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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| //declaration des variables pour le compteur
int h1=0;
int h2=0;
int m1=0;
int m2=0;
int s1=0;
int s2=0;
int i=1;
int ii=0;
byte indicateur = 1; // on attend h1
#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("Entrer temps HHmmss");
// 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);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(2, HIGH);
if (indicateur < 7) { // on attend toujours une entrée
char key = keypad.getKey();
if ((key != NO_KEY) && (key >= '0') && (key <= '9')) {
// on a reçu un appui et cest un chiffre
switch(indicateur) {
case 1: h1 = key - '0';Serial.print(h1);Serial.println("_H00min00sec");indicateur++; break;
case 2: h2 = key - '0';Serial.print(h1);Serial.print(h2);Serial.println("H_0min00sec");indicateur++; break;
case 3:
if(key>='6'){
break;
}
if (key <='5'){
m1 = key - '0';Serial.print(h1);Serial.print(h2);Serial.print("H");Serial.print(m1);Serial.println("_min00sec");indicateur++; break;
}
case 4: m2 = key - '0';Serial.print(h1);Serial.print(h2);Serial.print("H");Serial.print(m1);Serial.print(m2);Serial.println("min_0sec");indicateur++; break;
case 5:
if(key>='6'){
break;
}
if (key <='5'){
s1 = key - '0';Serial.print(h1);Serial.print(h2);Serial.print("H");Serial.print(m1);Serial.print(m2);Serial.print("min");Serial.print(s1);Serial.println("_sec");indicateur++; break;
}
case 6: s2 = key - '0';Serial.print(h1);Serial.print(h2);Serial.print("H");Serial.print(m1);Serial.print(m2);Serial.print("min");Serial.print(s1);Serial.print(s2);Serial.print("sec");
indicateur++;break;
default: break;// ne devrait pas arriver
}
}
}
} |
Partager