Hey je suis bloquer dans mon programme

je doit pour me projet de cours faire un programme avec un kaypad , un capteur RFID et une serrure à solénoïde mais je tourne en rond depuis quelque jour car je suis bloquer avec ce programme :

/*-----( Bibliothèques )-----*/
#<del>include</del> <Keypad.h<del>></del>



/*-----( Déclaration des constantes )-----*/
const int BrocheSolenoide = 13; // déclaration de la broche du solénoide



const byte ROWS = 4; //déclaration nombre de lignes (4)
const byte COLS = 4; //déclaration nombre de colonnes (4)
const char keys[ROWS][COLS] = { //déclaration de la correspondance ligne/colonne des touches
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
const byte rowPins[ROWS] = {9, 8, 7, 6}; //déclaration des broches lignes
const byte colPins[COLS] = {5, 4, 3, 2}; //déclaration des broches colonnes



const String codeSecret; //le code "secret"



/*-----( Déclaration des variables )-----*/
String code; //le code saisi touche après touche



/*-----( Declaration des objets )-----*/
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Initialiser une instance de la classe keypad (bibiothèque Keypad.h)



void setup() {
Serial.begin(9600); //lancement moniteur série
Serial.<del>println </del>("Veuillez saisir votre code et valider par #."); //on affiche
unsigned int time_hold = 4; // pour activer l'état HOLD
keypad.setHoldTime(time_hold);
unsigned int time_anti_rebond = 4; // anti rebond 4 ms
keypad.setDebounceTime(time_anti_rebond);
pinMode(BrocheSolenoide, OUTPUT);
codeSecret = "1234#";
}



void loop() {
char key = keypad.getKey(); //récupération de la touche appuyée
if (key != NO_KEY) { //si une touche a été appuyée
Serial.print("touche appuyée : "); //affiche la touche appuyée
Serial.println(key);
code = key; //concaténation du code avec les touches appuyées successivement !!! A COMPLETER !!!
Serial.println("code : " + code); //affiche le code






if (code &&key == ' codeSecret ') { //si le code est correct et si on appuie sur #  !!! A COMPLETER !!!

  pinMode(BrocheSolenoide, HIGH);  //commande ouverture du solenoide électrique  !!! A COMPLETER !!!
  Serial.println("code correct, serrure ouverte !");  //on affiche
  delay(5000);  //attente 5s
  pinMode(BrocheSolenoide, LOW); //commande fermeture du solenoide électrique  !!! A COMPLETER !!!
  code = "";  //effacement du code saisi
  Serial.println("code effacé ! "); //on affiche

}
else if (code &&key  == ' codeSecret ') {//si le code est incorrect et si on appuie sur #  !!! A COMPLETER !!!
  Serial.println("code faux, veuillez saisir votre code et valider par #."); //on affiche
  delay(500);
  code = ""; // effacement du code saisi
  Serial.println("code effacé ! "); //on affiche
}

}
}

j'ai du rajouter aussi comme bibliothèque Keypad.master , RFID pour rc522 , et SPI
mais le une fois le code fini je rencontre quelque bug

C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:53:23: warning: character constant too long for its type





 
  if (code &&key == ' codeSecret ') { //si le code est correct et si on appuie sur #  !!! A COMPLETER !!!

                   ^
 





 C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:62:29: warning: character constant too long for its type





 
  else if (code &&key  == ' codeSecret ') {//si le code est incorrect et si on appuie sur #  !!! A COMPLETER !!!

                        ^
 





 C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:32:72: warning: invalid conversion from 'const byte* {aka const unsigned char*}' to 'byte* {aka unsigned char*}' [-fpermissive]



 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Initialiser une instance de la classe keypad (bibiothèque Keypad.h)





 
                                                                     ^
 





 In file included from C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:10:0:



 \TLPU085-AD.TLPU085.ETAB.LOCAL\eleves\Ferras.VIVARAT\Mes documents\Arduino\libraries\Keypad-master\src/Keypad.h:78:2: note: initializing argument 2 of 'Keypad::Keypad(char*, byte*, byte*, byte, byte)'



 Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols);



 ^



 C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:32:72: warning: invalid conversion from 'const byte* {aka const unsigned char*}' to 'byte* {aka unsigned char*}' [-fpermissive]



 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Initialiser une instance de la classe keypad (bibiothèque Keypad.h)




 
                                                                    ^
 





 In file included from C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:10:0:



 \TLPU085-AD.TLPU085.ETAB.LOCAL\eleves\Ferras.VIVARAT\Mes documents\Arduino\libraries\Keypad-master\src/Keypad.h:78:2: note: initializing argument 3 of 'Keypad::Keypad(char*, byte*, byte*, byte, byte)'



 Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols);



 ^



 C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino: In function 'void setup()':



 C:\Users\Ferras.VIVARAT\Downloads\IT_exigence_132_clavier_matriciel_souple_solenoide\IT_exigence_132_clavier_matriciel_souple_solenoide.ino:42:14: warning: passing 'const String' as 'this' argument of 'String& String::operator=(const char*)' discards qualifiers [-fpermissive]



 codeSecret = "1234#";

**Bref je demande votre aide pour mon programme merci d'avance ^^**
**bonne journée**

Si vous voulez comprendre comment bien écouter le port série (ou gérer un flux asynchrone genre keypad) vous pouvez jeter un oeil à mon petit tuto sur le sujet. Il y a un bout de code pour mot de passe avec keypad à la fin


J'ai fait une partie du boulot, Merci de faire le reste et d'éditer votre post pour rajouter les balises de de code, c'est illisible tel quel:

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

Rebonjour, merci de votre conseil je viens de finir les modifications.
Je vais donc commencer la lecture de votre tuto et encore merci pour votre aide.