Mot de passe via serialRead

Bonsoir !

je cherche à écrire un mot de passe sur le serialRead, qui permettra de réaliser tel ou tel action sur mon arduino.
Avec un chiffre ou une lettre j'y arrive, mais pas avec des chiffres ou des lettres...

voici mon code : (si vous avez des idées n'hésitez pas! merci !)

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// variables will change:
int val = 0; // reading data from the seral port
// constants won't change:
const int ledPin1 = 6;                
const int ledPin2 = 13;                

void setup()
{
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Test Serial Read");

  pinMode(ledPin1,OUTPUT);
  pinMode(ledPin2,OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  val = Serial.read();
  
  if (val == 'A') // if the number 1 is recieved from the serial port
  { 
    digitalWrite(ledPin1, HIGH); // change the state of pin 3.
    digitalWrite(ledPin2, LOW); // change the state of pin 3.
  }
  
  if (val == 'B') // if the number 1 is recieved from the serial port
  { 
    digitalWrite(ledPin1, LOW); // change the state of pin 3.
    digitalWrite(ledPin2, HIGH); // change the state of pin 3.
  }
  
  lcd.setCursor(0, 4);
  lcd.print(Serial.read());
}

cereal:
mais pas avec des chiffres ou des lettres...

Des enclumes... ça irait ? XD

il faut stocker les caracteres dans un buffer au fur et à mesure de la lecture du port serie.

Quand le charactere lu est '\n' (entrée), on fait une comparaison entre le mot de passe et la valeur stockée.

Donc en gros (il peut y avoir des erreurs, je code à la volée).

char buffer[25];          // Buffer de stockage des caractères entrés
byte bufferPos=0;        // Index pour stocker les caracteres entrés
char ch;                 // valeur à lire
boolean enterPressed = false;  // flag pour savoir si Enter a été préssé

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())   // Il y a des caracteres dispos  sur le port serie
  {
    ch = Serial.read();    // On en lit 1
    
    enterPressed = false;   // On set le flag a faux
    
    if (ch!='\n')    // Si ch n'est pas Enter
    {
      buffer[bufferPos++]=ch;  // On stocke dans le buffer et on augmente l'index
      
      if (bufferPos>24)   // Si on tape trop de caractere on revient à zero
       bufferPos = 0;
    }
    else            // C'est enter qui est pressé
    {
      buffer[bufferPos]='\x0';   // on le remplace par 'fin de chaine'
      enterPressed = true;      // On valide le flag
    }
  }
  
  if (enterPressed==true)     // Enter a été pressé !
  {
    if (strstr(buffer, "MOTDEPASSE"))   // On compare au mot de passe
    {
      Serial.println("Ok vous êtes autorisé");
    }
    else
    {
      Serial.println("Mauvais mot de passe");
    }
  }
}

hum hum!

je vais regarder tout ça !

merci