pour le moment j'ai fait un petit code
faut que je le teste dés que j'ai un peu de temps
/*
|| Ouverture portail avec keypad 4x3
|| Création le 07/04/2013
|| allumage led sur pin 10 quand code mauvais
|| allumage led sur pin 11 quand code bon
|| pilotage opto sur pin 12 quand code bon
*/
//* valide la saisie
//# reset la saisie
/////////////////////////////////////////////////////////////////
#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
Password password = Password( "1234" );
const byte ROWS = 4; // 4 lignes
const byte COLS = 3; // 3 colonnes
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = { 9,8,7,6 };// Connecter le keypad ROW0, ROW1, ROW2 and ROW3 sur les pins
byte colPins[COLS] = { 5,4,3, };// Connecter le keypad COL0, COL1 and COL2 sur les pins
// Création du keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
keypad.addEventListener(keypadEvent); // ajout d'un evenement keypad
pinMode(10, OUTPUT); // mauvais
pinMode(11, OUTPUT); // bon
pinMode(12, OUTPUT); // opto
}
void loop(){
keypad.getKey();
}
// mise en place bouton sup
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
switch (eKey){
case '*': checkPassword(); break;
case '#': password.reset(); break;
default: password.append(eKey);
}
}
}
void checkPassword(){
if (password.evaluate()){ // action quand code bon
digitalWrite(11, HIGH); // allumage led bon
delay(1000);
digitalWrite(12, HIGH); // opto
delay(1000);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}else{ // action quand code mauvais
digitalWrite(10, HIGH);
delay(2000);
digitalWrite(10, LOW);
}
}