The missing widgets

2 : WidgetLCD with double progressBar

use to time, level, etc …
easy to adapt

Video_00287

/*************** Progress bar init ***************/
int Progress = 0;
int col=0;                //(col from 0 to 15 LCD)
int Flag = 0;
int Flag1=0;
boolean PgrsTimer ;
WidgetLCD lcd(V18);

String C1 = "\u258F";
String C2 = "\u258E";
String C3 = "\u258D";
String C4 = "\u258C";
String C5 = "\u258B";     // HORIZONTAL BAR
String C6 = "\u258A";
String C7 = "\u2589";
String C8 = "\u2588";


String E1 = "\u2581";
String E2 = "\u2582"; // 
String E3 = "\u2583" ; //
String E4 = "\u2584" ; //
String E5 = "\u2585" ;      //VERTICAL BAR
String E6 = "\u2586" ; //
String E7 = "\u2587" ; //
String E8 = "\u2588" ; //



void setup()
{
...
  PgrsTimer = timer.setInterval(100L, ProgressBar); 
  timer.disable(PgrsTimer);

 /***************** Initialize LCD *****************/
  Start();

.....
}

/*********************** start button ************************/
  BLYNK_WRITE(V18) {// progressbar start
  timer.enable(PgrsTimer);
}


/************************* ProgressBar ******************/
void ProgressBar() {

  if (Progress < 100.01) {
    lcd.print(0, 0, "Progress " + String(Progress) + "%  ");

    Flag++; // HORIZONTAL BAR
    
    switch (col) {
      case 0 :
        lcd.print(15 , 1, E1);
        break;
      case 2 :
        lcd.print(15 , 1, E2);
        break;
      case 4 :
        lcd.print(15 , 1, E3);
        break;
      case 6 :
        lcd.print(15 , 1, E4);
        break;
      case 8 :
        lcd.print(15 , 1, E5);
        break;
      case 10 :
        lcd.print(15 , 1, E6);
        break;
      case 12 :
        lcd.print(15 , 1, E7);
        break;
      case 13 :
        lcd.print(15 , 1, E8);
        break;
    }


    switch (Flag) {      //VERTICAL BAR
      case 1:
        lcd.print(col , 1, C1);
        break;
      case 2:
        lcd.print(col , 1, C2);
        break;
      case 3 :
        lcd.print(col , 1, C3);
        break;
      case 4:
        lcd.print(col , 1, C4);
        break;
      case 5:
        lcd.print(col , 1, C5);
        break;
      case 6:
        lcd.print(col , 1, C6);
        break;
      case 7:
        lcd.print(col , 1, C7);
        break;
      case 8:
        lcd.print(col , 1, C8);
        Flag = 0;
        col++;
        break;
    }

    Progress++;


  } else {
    lcd.print(col , 1, C8);
    lcd.print(15 , 1, E8);
    col = 0;
    Progress = 0;
    timer.disable(PgrsTimer); // end , stop timer
    timer.setTimer(500L, Completion, 10);  // Pulse msg  times
    timer.setTimer(6000L, Start,1);  // Start, new message
    }
}

/****************** blink msg *********************/
void Completion() {
  if (Flag1 == 0) {
    lcd.print(0, 0, " completed 100% ");
    Flag1 = 1;
  }
  else {
    lcd.print(0, 0, "                ");
    Flag1 = 0;
  }
}

/**************** press Start ***************/
void Start() {
  lcd.clear();
  lcd.print(1, 0, "Press START");
}
7 Likes