Hjälp med att starta om void loop

Hej! Kul att du börjat komma igång.

Jag har städat upp lite i koden, för att slippa upprepa samma kod flera gånger. I övrigt har jag bara lagt till en delay och en ny "Welcome"-prompt efter "PASSERA". Har inte kunnat testa koden eftersom jag inte har de bibliotek som behövs men funkar det inte får du posta felmeddelandet så försöker vi felsöka tillsammans.

#include <Password.h>
#include <Keypad.h>
#include <LiquidCrystal.h>

Password password = Password("12345");  // password
int dlugosc = 5;             // length of the password

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int ledRed = 23;
int ledGreen = 25;
int buzzer = 27;

int ilosc; // number of clicks

const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
 {'1', '2', '3', 'A'},
 {'4', '5', '6', 'B'},
 {'7', '8', '9', 'C'},
 {'*', '0', '#', 'D'}
};

byte rowPins[ROWS] = { 34, 32, 30, 36 };
byte colPins[COLS] = { 28, 26, 24, 22 };

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()
{
 Serial.begin(9600);
 keypad.addEventListener(keypadEvent);
 pinMode(ledRed, OUTPUT);
 pinMode(ledGreen, OUTPUT);
 pinMode(buzzer, OUTPUT);

 setState(false);

 printWelcome();
}

void printWelcome() {
 lcd.clear();
 lcd.begin(16, 2);

 lcd.setCursor(1, 0);
 lcd.print("  :Welcome:");
 lcd.setCursor(0, 1);
 lcd.print("  ANGE PINKOD ");
}

void loop()
{
 keypad.getKey();
}
void keypadEvent(KeypadEvent eKey)
{
 switch (keypad.getState())
 {
   case PRESSED:

     int i;
     for ( i = 1; i <= 1; i++ )
     {
       buzz(50);
     }

     Serial.print("Pressed: ");
     Serial.println(eKey);

     switch (eKey)
     {
       /*
         case '#':
         break;

         case '*':
         break;
       */

       default:
         ilosc = ilosc + 1;
         password.append(eKey);
     }
     //Serial.println(ilosc);

     lcd.clear();
     lcd.setCursor(1, 0);
     lcd.print("   < PIN >");
     lcd.setCursor(0, 1);
     for (byte i = 0; i < ilosc; i++) {
       lcd.print("*");
     }
     if (ilosc != 8) {
       lcd.print("_");
     }

     if (ilosc == dlugosc)
     {
       delay(250);
       checkPassword();
       ilosc = 0;
     }
 }
}

void checkPassword()
{
 if (password.evaluate())
 {
   int i;
   for ( i = 1; i <= 2; i++ )
   {
     buzz(70);
   }
   ilosc = 0;

   Serial.println("Success");

   setState(true);

   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print(" << PASSERA >>");
   delay(10000); // Låt det vara öppet i 10 sekunder
   setState(false); // Stäng
   printWelcome();
   return;
 }
 else
 {
   int i;
   for ( i = 1; i <= 1; i++ )
   {
     buzz(200);
   }
   ilosc = 0;
   password.reset();

   Serial.println("Wrong");

   setState(false);

   lcd.clear();
   lcd.setCursor(0, 1);
   lcd.print("  < FEL KOD >");
   delay(2000);

   printWelcome();
 }
}

void buzz (unsigned int milliseconds) {
 digitalWrite(buzzer, HIGH);
 delay(milliseconds);
 digitalWrite(buzzer, LOW);
 delay(milliseconds);
}

void setState(boolean isopen) {
 digitalWrite(ledGreen, isopen);
 digitalWrite(ledRed, !isopen );
}