anyone can help me in this tiny code for the LCD display

i make this code to display two level of two water tanks i used 2 ultrasonic,
the display show up the first level then delay 3000 to show the other water level for the other tank
so i need a code to make the 2 level show up in the same time, with percentage at the end like this

###########  100%
###          30%

anyone have this tiny code to add it ?

and this is my code for my device:

#include <LiquidCrystal.h>

#define ECHOPIN 3                            // Pin to receive echo pulse
#define TRIGPIN 4                            // Pin to send trigger pulse
#define ECHO_PIN2 6                            // Pin to receive echo pulse2
#define TRIG_PIN2 5                            // Pin to send trigger pulse2

#define STATUSPIN 13                        // Use for troubleshooting

int highWater = 24;        // These values allow to calculate % of full
int lowWater = 100;        // SRF04 hangs above water (lower distance = more water)

byte symbol[8] = {         // Custom character for LCD display
  B00000, 
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B00000,
};

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);    // Assign pins

// Utility function for flashing STATUSPIN
void flashLed(int pin, int times, int wait) {

  for (int i = 0; i < times; i++) {
    digitalWrite(pin, HIGH);
    delay(wait);
    digitalWrite(pin, LOW);

    if (i + 1 < times) {
      delay(wait);
    }
  }
}

void setup() {
  
  lcd.begin(16,2);
  lcd.print("   AQUA LEVEL ");
  lcd.createChar(0, symbol);
  pinMode(ECHOPIN, INPUT);
  pinMode(TRIGPIN, OUTPUT);
  pinMode(ECHO_PIN2, INPUT);
  pinMode(TRIG_PIN2, OUTPUT);

 delay(3000);       // Show application name for 3 seconds.

}

void loop() {
 // Measure distance
  digitalWrite(TRIGPIN, LOW);                   // Set the trigger pin to low for 2uS
  delayMicroseconds(2);
  digitalWrite(TRIGPIN, HIGH);                  // Send a 10uS high to trigger ranging
  delayMicroseconds(10);
  digitalWrite(TRIGPIN, LOW);                   // Send pin low again
  int distance = pulseIn(ECHOPIN, HIGH);        // Read in times pulse
  distance= distance/65;                        // divide by 58 gives cm.

// Measure distance 2
  digitalWrite(TRIG_PIN2, LOW);                   // Set the trigger pin to low for 2uS
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN2, HIGH);                  // Send a 10uS high to trigger ranging
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN2, LOW);                   // Send pin low again
  int distance2 = pulseIn(ECHO_PIN2, HIGH);        // Read in times pulse
  distance2= distance2/65;                        // divide by 58 gives cm.
  
 // Convert measured value1 to value between 0-11, to display on LCD
  // Use Arduino built-in map and constrain functions
  int scaledValue = map(constrain(distance, highWater, lowWater), lowWater, highWater, 0, 11);
  lcd.clear();
  lcd.print("E    |    F    1");
  lcd.setCursor(0,1);
  while (scaledValue > 0) {
     lcd.print((char)0);
     scaledValue--;
  }
      
   delay(3000);  // Wait 2 seconds before printing the 2nd value.

  // Convert measured value2 to value between 0-11, to display on LCD
  // Use Arduino built-in map and constrain functions
  int scaledValue2 = map(constrain(distance2, highWater, lowWater), lowWater, highWater, 0, 11); 
  lcd.clear();
  lcd.print("E    |    F    2");
  lcd.setCursor(0,1);
  while (scaledValue2 > 0) {
     lcd.print((char)0);
     scaledValue2--;
  }
      
   delay(3000);  // Wait 2 seconds before measuring again. We're in no hurry!
}}

Not sure how this is different from your last post but before they are merged, you can learn from this.
I uses a different library, but it should be fairly simple to change to the one your using.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
uint8_t bar0[8]  = {
  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}; 
uint8_t bar1[8]  = {
  0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};
uint8_t bar2[8]  = {
  0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18};
uint8_t bar3[8]  = {
  0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C};
uint8_t bar4[8]  = {
  0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E};
uint8_t bar5[8]  = {
  0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F};
int i,j=0, number=1;
LiquidCrystal_I2C lcd(0x20,20,4);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  Serial.begin(9600);
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  lcd.createChar(0, bar0);
  lcd.createChar(1, bar1);
  lcd.createChar(2, bar2);
  lcd.createChar(3, bar3);
  lcd.createChar(4, bar4);
  lcd.createChar(5, bar5);
  lcd.home();
  lcd.print("Hello world...");
  delay(1000);
}
void loop()
{
  bargraph(analogRead(A0), 1, 0, 16); //  (pin, row, start on display, end on display)
  //bargraph(analogRead(A6), 3, 0, 20);
}
void bargraph(int data, int row, int start, int end)
{ 
  j = map(data, 0, 1023, 0, (6*end) - (6*start));
  if(number <= j){
    for(number; number < j; number++){
      i = number / 6;
      lcd.setCursor(i+start,row);
      lcd.write(number % 6);
    }
  }
  else {
    for(number; number > j; number--){
      i = number / 6;
      lcd.setCursor(i,row);
      lcd.write(number % 6);
    }
  }
  Serial.print(number);
   Serial.print(" ");
   Serial.println(i);
}

you certainly set a record with the number of posts for this little bit of code

int scaledValue2 = map(constrain(distance2, highWater, lowWater), lowWater, highWater, 0, 11);

returns 0 to 11 for your ‘bar graph’. you want to print up to 100%, which is four characters so there is room for 16 characters on a line so there is room for your percentages…

insert this kind of thing:

// Convert measured value2 to value between 0-11, to display on LCD
  // Use Arduino built-in map and constrain functions
  int scaledValue2 = map(constrain(distance2, highWater, lowWater), lowWater, highWater, 0, 11); 
  int myValue = scaledValue2;//<<<<<<<<<<<<<<<<<<<
  lcd.clear();
  lcd.print("E    |    F    2");
  lcd.setCursor(0,1);
  while (scaledValue2 > 0) 
  {
     lcd.print((char)0);
     scaledValue2--;
  }
  lcd.setCursor(12,1);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  if (myValue < 100) lcd.print(" ");//<<<<<<<<<<<<<<
  if (myValue < 10) lcd.print(" ");//<<<<<<<<<<<<<<<
  lcd.print(myValue);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
      
   delay(3000);  // Wait 2 seconds before measuring again. We're in no hurry!

it would have been easier if you just asked someone to write the whole piece for you.

Keep it to one thread, let those who started their assistance help you through the whole project

Cannot wait for your next question…