Bonjour,
Comme indiqué dans le titre, cette question est à propos d'un projet pour le Bac, libre à vous de continuer, ou non, la lecture. Si vous continuez, merci à vous ![]()
Voilà, je vous expose mon problème : Je dois effectuer une reconnaissance de code secret, à partir d'un code préenregistré, qui doit être tapé sur un clavier. Or, je voulais savoir comment faire pour effectuer cette vérification, s'il vous plaît? Je vous mets le code juste en-dessous, avec les commentaires :
#include <Password.h>
#include <Keypad.h>
#include <LiquidCrystal.h>
//Inclusion des librairies pour initialiser un mot de passe, un clavier et un afficheur externe
lcd.begin(16,2);
//Initialisation du LCD avec 16 colonnes X 2 lignes
Password password = Password( "2703" );
//Déclaration du mot de passe (ici : 2703)
const byte ROWS = 4;
const byte COLS = 3;
//Définition du nombre de lignes (3) et de colonnes (4) du clavier
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
//Représentation approximative du clavier
byte rowPins[ROWS] = {8, 7, 6, 5};
byte colPins[COLS] = {4, 3, 2};
//Déclaration des broches utilisées pour connecter le clavier
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//Effectue une représentation informatique du clavier dans le système de l'arduino
void setup(){
keypad.addEventListener(keypadEvent);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
}
//Démarre le clavier, active les broches nécessaires pour écrire
void loop(){
keypad.getKey();
}
//Envoie la valeur des boutons pressés au système pour vérification
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
switch (eKey){
case '*': checkPassword(); password.reset(); break;
case '#': password.reset(); break;
default: password.append(eKey);
}
}
}
//Reçoit les différents octets correspondant au nombre tapé, les concatène et envoie la valeur pour comparer avec le code programmé
void checkPassword(){
if (password.evaluate()){
digitalWrite(11, HIGH);
digitalWrite(9, HIGH);
delay(500);
digitalWrite(9, LOW);
delay(1500);
digitalWrite(11, LOW);
}else{
digitalWrite(10, HIGH);
delay(2000);
digitalWrite(10, LOW);
}
}
//Compare le code tapé au code programmé
Voilà, donc comment feriez-vous, s'il vous plaît?
Merci d'avance aux personnes qui auront les capacités de m'aider ![]()
Bonne journée à vous