#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 24, 4); // I2C address 0x27, 16 column and 2 rows
int dig1=0, dig2=5, dig3=11, dig4=16;
byte top[] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x0F,
0x07
};
byte TopRight[] = {
0x1C,
0x1E,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F
};
byte Bar[] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F
};
byte Down[] = {
0x00,
0x00,
0x00,
0x00,
0x1F,
0x1F,
0x1F,
0x1F
};
byte Up[] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x00,
0x00,
0x00,
0x00
};
byte BottomLeft[] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x0F,
0x07,
0x03
};
byte BottomRight[] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1E,
0x1C,
0x18
};
byte MidelDown[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x1F,
0x1F,
0x1F
};
byte MidelUp[] = {
0x1F,
0x1F,
0x1F,
0x00,
0x00,
0x00,
0x00,
0x00
};
byte Left[] = {
0x00,
0x01,
0x03,
0x07,
0x0F,
0x1F,
0x1F,
0x1F
};
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
//lcd.createChar(0, top);
// lcd.createChar(1, TopRight);
lcd.createChar(2, Bar);
lcd.createChar(3, Down);
lcd.createChar(4, Up);
// lcd.createChar(5, BottomLeft);
lcd.createChar(6, BottomRight);
lcd.createChar(7, MidelDown);
lcd.createChar(8, MidelUp);
lcd.createChar(9, Left);
}
void loop()
{
for(int i=0; i<=9; i++){
num(i, dig1);
num(i, dig2);
num(i, dig3);
num(i, dig4);
delay(1000);
lcd.clear();
delay(100);}
}
void num(int val, int row){
switch(val){
case 0:
zero(row);
break;
case 1:
one(row);
break;
case 2:
two(row);
break;
case 3:
three(row);
break;
case 4:
four(row);
break;
case 5:
five(row);
break;
case 6:
six(row);
break;
case 7:
seven(row);
break;
case 8:
eight(row);
break;
case 9:
nine(row);
break;
}
}
void zero(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(2);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(2);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(2);
}
void one(int dig){
lcd.setCursor(1+dig, 0);
lcd.write(9);
lcd.setCursor(2+dig, 0);
lcd.write(2);
lcd.setCursor(2+dig, 1);
lcd.write(2);
lcd.setCursor(2+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(3);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(2);
lcd.setCursor(3+dig, 3);
lcd.write(3);
}
void two(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(4);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(7);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(2);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(8);
lcd.setCursor(0+dig, 3);
lcd.write(2);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(3);
}
void three(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(4);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(7);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(8);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(3);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(6);
}
void four(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(8);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(3+dig, 3);
lcd.write(6);
}
void five(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(7);
lcd.setCursor(0+dig, 2);
lcd.write(8);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(2);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(6);
}
void six(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(7);
lcd.setCursor(0+dig, 2);
lcd.write(2);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(2);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(6);
}
void seven(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(3+dig, 3);
lcd.write(2);
}
void eight(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(2);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(2);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(2);
}
void nine(int dig){
lcd.setCursor(0+dig, 0);
lcd.write(2);
lcd.setCursor(1+dig, 0);
lcd.write(4);
lcd.setCursor(2+dig, 0);
lcd.write(4);
lcd.setCursor(3+dig, 0);
lcd.write(2);
lcd.setCursor(0+dig, 1);
lcd.write(2);
lcd.setCursor(1+dig, 1);
lcd.write(7);
lcd.setCursor(2+dig, 1);
lcd.write(7);
lcd.setCursor(3+dig, 1);
lcd.write(2);
lcd.setCursor(0+dig, 2);
lcd.write(8);
lcd.setCursor(1+dig, 2);
lcd.write(8);
lcd.setCursor(2+dig, 2);
lcd.write(8);
lcd.setCursor(3+dig, 2);
lcd.write(2);
lcd.setCursor(0+dig, 3);
lcd.write(3);
lcd.setCursor(1+dig, 3);
lcd.write(3);
lcd.setCursor(2+dig, 3);
lcd.write(3);
lcd.setCursor(3+dig, 3);
lcd.write(2);
}