I need to increase the time symbols as in the photo. please help me ))
sketch_aug04a.ino (2.54 KB)
Here is a sketch for displaying large digits on a 16x2 LCD. Perhaps you can adapt it to your needs.
const byte BIGDIG_START_COLUMN = 1;
const byte BIGDIG_COLUMNS_PER_DIGIT = 3;
const byte BIGDIG_DIGIT_COUNT = 5;
const bool BIGDIG_LEADING_ZEROES = false;
byte LT[8] =
{
B00011,
B00111,
B01111,
B01111,
B01111,
B01111,
B01111,
B01111
};
byte UB[8] =
{
B11111,
B11111,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte RT[8] =
{
B11000,
B11100,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110
};
byte LL[8] =
{
B01111,
B01111,
B01111,
B01111,
B01111,
B01111,
B00111,
B00011
};
byte LB[8] =
{
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111
};
byte LR[8] =
{
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11100,
B11000
};
byte MB[8] =
{
B11111,
B11111,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111
};
byte block[8] =
{
B00001,
B00011,
B00111,
B00000,
B00000,
B00000,
B00000,
B00000
};
void BigDigSetup(int columns, int rows)
{
lcd.begin(columns, rows);
lcd.createChar(0, LT);
lcd.createChar(1, UB);
lcd.createChar(2, RT);
lcd.createChar(3, LL);
lcd.createChar(4, LB);
lcd.createChar(5, LR);
lcd.createChar(6, MB);
lcd.createChar(7, block);
lcd.clear();
}
void printNumber(unsigned long val)
{
int col = BIGDIG_START_COLUMN + (BIGDIG_COLUMNS_PER_DIGIT * (BIGDIG_DIGIT_COUNT - 1));
for (int i = 0; i < BIGDIG_DIGIT_COUNT; i++)
{
if (!BIGDIG_LEADING_ZEROES && val == 0 && i > 0)
{
clearDigit(col);
}
else
{
printDigit(val % 10, col);
}
val /= 10;
col -= BIGDIG_COLUMNS_PER_DIGIT;
}
}
void clearDigit(byte column)
{
lcd.setCursor(column, 0);
lcd.write(' ');
lcd.write(' ');
lcd.write(' ');
lcd.setCursor(column, 1);
lcd.write(' ');
lcd.write(' ');
lcd.write(' ');
}
void printDigit(int digits, int x)
{
switch (digits)
{
case 0:
lcd.setCursor(x, 0);
lcd.write((byte)0);
lcd.write(1);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(3);
lcd.write(4);
lcd.write(5);
break;
case 1:
lcd.setCursor(x, 0);
lcd.write(7);
lcd.write(2);
lcd.write(' ');
lcd.setCursor(x, 1);
lcd.write(4);
lcd.write(0xFF);
lcd.write(4);
break;
case 2:
lcd.setCursor(x, 0);
lcd.write(6);
lcd.write(6);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(3);
lcd.write(4);
lcd.write(4);
break;
case 3:
lcd.setCursor(x, 0);
lcd.write(6);
lcd.write(6);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(4);
lcd.write(4);
lcd.write(5);
break;
case 4:
lcd.setCursor(x, 0);
lcd.write(3);
lcd.write(4);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(' ');
lcd.write(' ');
lcd.write(5);
break;
case 5:
lcd.setCursor(x, 0);
lcd.write(3);
lcd.write(6);
lcd.write(6);
lcd.setCursor(x, 1);
lcd.write(4);
lcd.write(4);
lcd.write(5);
break;
case 6:
lcd.setCursor(x, 0);
lcd.write((byte)0);
lcd.write(6);
lcd.write(6);
lcd.setCursor(x, 1);
lcd.write(3);
lcd.write(4);
lcd.write(5);
break;
case 7:
lcd.setCursor(x, 0);
lcd.write(7);
lcd.write(1);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(' ');
lcd.write(' ');
lcd.write(5);
break;
case 8:
lcd.setCursor(x, 0);
lcd.write((byte)0);
lcd.write(6);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(3);
lcd.write(4);
lcd.write(5);
break;
case 9:
lcd.setCursor(x, 0);
lcd.write((byte)0);
lcd.write(6);
lcd.write(2);
lcd.setCursor(x, 1);
lcd.write(' ');
lcd.write(' ');
lcd.write(5);
break;
}
}
sorry but i can't figure it out. can you help me ?