Kód: Vybrať všetko
byte lcd_bar_beg[8] = {B01000,B10101,B01001,B00001,B00001,B00001,B00000,B00000};
byte lcd_bar_0[8] = {B11111,B00000,B00000,B00000,B00000,B00000,B11111,B00000};
byte lcd_bar_1[8] = {B11111,B00000,B10000,B10000,B10000,B00000,B11111,B00000};
byte lcd_bar_2[8] = {B11111,B00000,B11000,B11000,B11000,B00000,B11111,B00000};
byte lcd_bar_3[8] = {B11111,B00000,B11100,B11100,B11100,B00000,B11111,B00000};
byte lcd_bar_4[8] = {B11111,B00000,B11110,B11110,B11110,B00000,B11111,B00000};
byte lcd_bar_5[8] = {B11111,B00000,B11111,B11111,B11111,B00000,B11111,B00000};
byte lcd_bar_end[8] = {B00000,B10000,B10000,B10000,B10000,B10000,B00000,B00000};
lcd.createChar(0, lcd_bar_0);
lcd.createChar(1, lcd_bar_1);
lcd.createChar(2, lcd_bar_2);
lcd.createChar(3, lcd_bar_3);
lcd.createChar(4, lcd_bar_4);
lcd.createChar(5, lcd_bar_5);
lcd.createChar(6, lcd_bar_beg);
lcd.createChar(7, lcd_bar_end);
void bar(int unsigned perc) {
lcd.setCursor(3,0);
lcd.write(byte(6));
if (perc > 100 ) {
if(perc > 200) perc = 200;
boolean bliks = blik(500);
if(bliks) {
perc = 200-perc;
} else {
perc = 100;
}
}
int segment = perc / 12.5;
int dielik = (perc - (segment * 12.5))/2.5;
for (int i_f=0; i_f<segment; i_f++) {
lcd.write(byte(5));
}
if(!(segment == 8 && dielik == 0)) lcd.write(byte(dielik));
for(int i_e=segment+1; i_e<8; i_e++) {
lcd.write(byte(0));
}
lcd.write(byte(7));
}
boolean blik(long mstime) {
if(millis() - blik_lastTime < mstime) {
return 1;
} else {
if(millis() - blik_lastTime > mstime*2) blik_lastTime = millis();
return 0;
}
}