Bonjour, Bonjour
Avec mon groupe de T.P.E, nous avons choisi de travailler sur : contrôler l'accès d'une porte. Pour cela, nous avons deux phases, l'identification de l'individu et verrouiller / déverrouiller la porte. Pour cela, nous avons choisie de prendre deux solutions à chaque fois. Pour la première phase, nous avons choisi d'utiliser un capteur vocal et un digicode. Pour la deuxième phase, nous avons choisi d'utiliser un moteur avec une serrure et un électroaimant.
Je vous demande de l'aide pour la partie sur le digicode. Le but est d'entrée un code sur un clavier 4x4 cellules. Si le code correspond, une led s'allume. Si cela ne marche pas, elle ne s'allume pas.
Le programme de marche pas. Pouvez-vous me dire mes erreurs.
Je vous remercie d'avanceCode:/* || 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 9 quand code bon ( voiture ) */ //* valide la saisie //# reset la saisie ///////////////////////////////////////////////////////////////// #include <avr/wdt.h> #include <Password.h> #include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip Password password = Password( "1159" ); // voiture 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] = {8, 7, 6, 5};// Connecter le keypad ROW0, ROW1, ROW2 and ROW3 sur les pins 8.7.6.5 byte colPins[COLS] = {4, 3, 2};// Connecter le keypad COL0, COL1 and COL2 sur les pins 4.3 // Création du keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ wdt_enable (WDTO_8S); // Initialise le watchdog avec un délais de 8 secondes keypad.addEventListener(keypadEvent); // ajout d'un evenement keypad voiture pinMode(10, OUTPUT); // mauvais pinMode(11, OUTPUT); // bon pinMode(9, OUTPUT); // opto } void loop(){ wdt_reset (); // remet à zéro le timeout du watchdog keypad.getKey(); } // mise en place bouton voiture void keypadEvent(KeypadEvent eKey){ switch (keypad.getState()){ case PRESSED: switch (eKey){ case '*': checkPassword(); break; case '#': password.reset(); break; default: password.append(eKey); } } } void checkPassword(){ // opto if (password.evaluate()){ // action quand code bon digitalWrite(11, HIGH); // allumage led bon digitalWrite(9, HIGH); // opto delay(500); digitalWrite(9, LOW); delay(1500); digitalWrite(11, LOW); }else{ // action quand code mauvais digitalWrite(10, HIGH); delay(2000); digitalWrite(10, LOW); } }
-----