I want to share Arduino lcd progress bar code

Hello my name is Anthony and I’m 14 years. I want to share my Code for arduino lcd loading bar
Feel free to use the code and tell me what you think

#include <LiquidCrystal.h>

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

byte percentage_1[8] = { B10000, B10000, B10000, B10000, B10000, B10000, B10000, B10000 };
byte percentage_2[8] = { B11000, B11000, B11000, B11000, B11000, B11000, B11000, B11000 };
byte percentage_3[8] = { B11100, B11100, B11100, B11100, B11100, B11100, B11100, B11100 };
byte percentage_4[8] = { B11110, B11110, B11110, B11110, B11110, B11110, B11110, B11110 };
byte percentage_5[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 }; 

void setup() {
  
  lcd.createChar(0, percentage_1);
  lcd.createChar(1, percentage_2);
  lcd.createChar(2, percentage_3);
  lcd.createChar(3, percentage_4);
  lcd.createChar(4, percentage_5);
  
  lcd.begin(16, 2);
  lcd.clear();
}

void loop() {     

  for(int i = 0; i <= 100; i++){
    lcd.setCursor(0,0);  
    lcd.print("Loading :");
    lcd.print(i);
    lcd.print("%");
    lcd_percentage(i, 0, 16, 1);
    delay(10);
  }
  
  lcd.clear();

}

void lcd_percentage(int percentage, int cursor_x, int cursor_x_end, int cursor_y){
  
  int calc = (percentage*cursor_x_end*5/100)-(percentage*cursor_x*5/100);
  while(calc >= 5){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)4);
    calc-=5;
    cursor_x++;
  }
  while(calc >= 4 && calc < 5){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)3);
    calc-=4;

  }
  while(calc >= 3 && calc < 4){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)2);
    calc-=3;
  }
  while(calc >= 2 && calc < 3){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)1);
    calc-=2;
  }
  while(calc >= 1 && calc < 2){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)0);
    calc-=1;
  }
  
}

I have trie to implement your code but I’m not a good programmers can you help me ? In the german forum helps me to create a simple code that light up and down a LED in a light sequenz and now I would like to make a simple progress bar for the time who need the LED Sequenz can someone help me please? Thank you !!!

#include <LiquidCrystal.h> // LCD Library 
//lcd(RS, Enable, D4, D5, D6, D7);

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

byte percentage_1[8] = { B10000, B10000, B10000, B10000, B10000, B10000, B10000, B10000 };
byte percentage_2[8] = { B11000, B11000, B11000, B11000, B11000, B11000, B11000, B11000 };
byte percentage_3[8] = { B11100, B11100, B11100, B11100, B11100, B11100, B11100, B11100 };
byte percentage_4[8] = { B11110, B11110, B11110, B11110, B11110, B11110, B11110, B11110 };
byte percentage_5[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 }; 



// Struktur für eine LED
struct led_t { byte pin; int zeit; char wert;  };

// Array für alle LEDs
led_t leds[]={
  
  { 2, 500, 'A' }, // Red PIN 2
  { 3, 20, 'B' }, // Yellow PIN 3
  { 4, 10, 'C' }, // Green PIN 4
  { 5, 200, 'D' }, // Blue PIN 5
};

char playList[]="AAAAA BBBBB CCCCC";
int playIndex=0;
int ledIndex=0;

#define NUMLEDS (sizeof(leds)/sizeof(leds[0]))

void setup () {

  
  
Serial.begin(9600);
    lcd.begin(16,2); //Hier begint das LCD Interface
    lcd.setCursor(6,0);
    lcd.print("Start");
    delay(2000);
   

lcd.createChar(0, percentage_1);
  lcd.createChar(1, percentage_2);
  lcd.createChar(2, percentage_3);
  lcd.createChar(3, percentage_4);
  lcd.createChar(4, percentage_5);

  
  Serial.println("Start");
  for(int i=0; i<NUMLEDS; i++) 
  {
    pinMode(leds[i].pin, OUTPUT);
  }
  Serial.print(leds[ledIndex].wert);
  
  digitalWrite(leds[ledIndex].pin,HIGH);
 }

unsigned long letzterWechsel;
void loop(){

  for(int i = 0; i <= 100; i++){
    lcd.setCursor(0,0);  
    lcd.print("In Progress:");
    lcd.print(i);
    lcd.print("%");
    lcd_percentage(i, 0, 16, 1);
 
  }
  lcd.clear();
  }
 void lcd_percentage(int percentage, int cursor_x, int cursor_x_end, int cursor_y){
  int calc = (percentage*cursor_x_end*5/100)-(percentage*cursor_y*5/100);
  while(calc >= 5){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)4);
    calc-=5;
    cursor_x++;
  }
  while(calc >= 4 && calc < 5){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)3);
    calc-=4;

  }
  while(calc >= 3 && calc < 4){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)2);
    calc-=3;
  }
  while(calc >= 2 && calc < 3){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)1);
    calc-=2;
  }
  while(calc >= 1 && calc < 2){
    lcd.setCursor(cursor_x,cursor_y);
    lcd.write((byte)0);
    calc-=1;
  }
  
  if(millis()-letzterWechsel >= leds[ledIndex].zeit)
  {
    digitalWrite(leds[ledIndex].pin, LOW);
    
    delay(300); //Pausen zwischen den LED Sequenzen

    letzterWechsel = millis();
    playIndex++;
    if (playIndex>=strlen(playList))
    {
      playIndex=0;      // Am Ende Überlauf auf null
      Serial.println(); // Neue Zeile auf Serial beginnen
   
    lcd.clear();
    lcd.setCursor(1,0);  
    lcd.print("Successful End");
    delay(2000);
    lcd.clear();
    lcd.setCursor(3,0);
    lcd.print("Load next");

    while(1);  // Ende mit Endlosschliefe
          

    }
    if (playList[playIndex]=='A') ledIndex=0;
    else if (playList[playIndex]=='B') ledIndex=1;
    else if (playList[playIndex]=='C') ledIndex=2;
    else if (playList[playIndex]=='D') ledIndex=3;
    digitalWrite(leds[ledIndex].pin,HIGH);
    Serial.print(leds[ledIndex].wert);

  }
}