#include <LiquidCrystal.h>

// Configurer l'écran LCD (D6,D4,E,RW, RS, V0)
LiquidCrystal lcd(D2, D3, D4, D5, D6, D7);

const int tailleProduits = 3;
const char* codesBarres[tailleProduits] =
{
    "1234567890123",
    "9876543210987",
    "4567891234567"
};

const char* nomsProduits[tailleProduits] = 
{
    "Produit A",
    "Produit B",
    "Produit C"
};

void setup()
{
    lcd.begin(16, 2);
    Serial.begin(9600);
    lcd.print("Prêt à scanner");
}

void loop() 
{
    if (Serial.available() > 0)
    {
        String codeBarre = Serial.readStringUntil('\n');  // Lire le code-barres
        verifierCodeBarre(codeBarre);
    }
}

void verifierCodeBarre(String codeBarre) 
{
    bool trouve = false;  // Pour savoir si le code-barres a été trouvé

    for (int i = 0; i < tailleProduits; i++) 
    {
        if (codeBarre.equals(codesBarres[i])) 
        {
            lcd.clear();
            lcd.print("Valide: ");
            lcd.print(nomsProduits[i]);
            trouve = true;
            break;  // On sort de la boucle une fois le produit trouvé
        }
    }

    if (!trouve) 
    {
        lcd.clear();
        lcd.print("Invalide: ");
        lcd.print(codeBarre);
    }

    delay(2000);  // Attendre 2 secondes avant de revenir à l'état initial
    lcd.clear();
    lcd.print("Prêt à scanner");
}
$abcdeabcde151015202530354045505560fghijfghij
D0D1D2D3D4D5D6D7GNDLOGIC