Код:
Сверху декларация переменных:
LiquidCrystal lcd(pin_lcd_RS, pin_lcd_Enable, pin_lcd_D4, pin_lcd_D5, pin_lcd_D6, pin_lcd_D7);
byte char_tr[8] = {
B00000,
B00000,
B00000,
B00000,
B11000,
B11110,
B11110,
B11111
};
byte char_tl[8] = {
B00000,
B00000,
B00000,
B00000,
B00011,
B01111,
B01111,
B11111
};
byte char_bl[8] = {
B11111,
B01111,
B01111,
B00011,
B00000,
B00000,
B00000,
B00000
};
byte char_br[8] = {
B11111,
B11110,
B11110,
B11000,
B00000,
B00000,
B00000,
B00000
};
byte char_t[8] = {
B11111,
B11111,
B11111,
B11111,
B00000,
B00000,
B00000,
B00000
};
byte char_b[8] = {
B00000,
B00000,
B00000,
B00000,
B11111,
B11111,
B11111,
B11111
};
byte char_trf[8] = {
B11000,
B11110,
B11110,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte char_blf[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B01111,
B01111,
B00011
};
#endif
Из setup() :
lcd.begin(20, 4);
lcd.createChar(0, char_tr);
lcd.createChar(1, char_tl);
lcd.createChar(2, char_bl);
lcd.createChar(3, char_br);
lcd.createChar(4, char_t);
lcd.createChar(5, char_b);
lcd.createChar(6, char_trf);
lcd.createChar(7, char_blf);
функции рисования:
void charDB(int col)
{
lcd.setCursor(col, 0); lcd.write(254); lcd.setCursor(col + 1, 0); lcd.write(254); lcd.setCursor(col + 2, 0); lcd.write( 5); lcd.setCursor(col + 3, 0); lcd.write(254); lcd.setCursor(col + 4, 0); lcd.write(5 ); lcd.setCursor(col + 5, 0); lcd.write(254); lcd.setCursor(col + 6, 0); lcd.write(254);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(255); lcd.setCursor(col + 3, 1); lcd.write(254); lcd.setCursor(col + 4, 1); lcd.write(255); lcd.setCursor(col + 5, 1); lcd.write(254); lcd.setCursor(col + 6, 1); lcd.write(254);
lcd.setCursor(col, 2); lcd.write(255); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(255); lcd.setCursor(col + 3, 2); lcd.write(254); lcd.setCursor(col + 4, 2); lcd.write(255); lcd.setCursor(col + 5, 2); lcd.write(4 ); lcd.setCursor(col + 6, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(255); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(255); lcd.setCursor(col + 3, 3); lcd.write(254); lcd.setCursor(col + 4, 3); lcd.write(255); lcd.setCursor(col + 5, 3); lcd.write(5 ); lcd.setCursor(col + 6, 3); lcd.write(255);
}
void charMinus(int col)
{
lcd.setCursor(col, 0); lcd.write(254); lcd.setCursor(col + 1, 0); lcd.write(254);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254);
lcd.setCursor(col, 2); lcd.write(4 ); lcd.setCursor(col + 1, 2); lcd.write(4 );
lcd.setCursor(col, 3); lcd.write(254); lcd.setCursor(col + 1, 3); lcd.write(254);
}
void char1(int col)
{
lcd.setCursor(col, 0); lcd.write(254); lcd.setCursor(col + 1, 0); lcd.write(254); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(254); lcd.setCursor(col + 1, 2); lcd.write(254); lcd.setCursor(col + 2, 2); lcd.write(254); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(254); lcd.setCursor(col + 1, 3); lcd.write(254); lcd.setCursor(col + 2, 3); lcd.write(254); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char2(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(255); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(4);
lcd.setCursor(col, 3); lcd.write(255); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(5);
}
void char3(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(4 ); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(5 ); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char4(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(254); lcd.setCursor(col + 2, 0); lcd.write(254); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(4 ); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(254); lcd.setCursor(col + 1, 3); lcd.write(254); lcd.setCursor(col + 2, 3); lcd.write(254); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char5(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(254);
lcd.setCursor(col, 2); lcd.write(4 ); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(5 ); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char6(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(254);
lcd.setCursor(col, 2); lcd.write(255); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(255); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char7(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(254); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(254); lcd.setCursor(col + 1, 2); lcd.write(254); lcd.setCursor(col + 2, 2); lcd.write(254); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(254); lcd.setCursor(col + 1, 3); lcd.write(254); lcd.setCursor(col + 2, 3); lcd.write(254); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char8(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(255); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(255); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char9(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(4 ); lcd.setCursor(col + 1, 2); lcd.write(4 ); lcd.setCursor(col + 2, 2); lcd.write(4 ); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(5 ); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void char0(int col)
{
lcd.setCursor(col, 0); lcd.write(5 ); lcd.setCursor(col + 1, 0); lcd.write(5 ); lcd.setCursor(col + 2, 0); lcd.write(5 ); lcd.setCursor(col + 3, 0); lcd.write(5);
lcd.setCursor(col, 1); lcd.write(255); lcd.setCursor(col + 1, 1); lcd.write(254); lcd.setCursor(col + 2, 1); lcd.write(254); lcd.setCursor(col + 3, 1); lcd.write(255);
lcd.setCursor(col, 2); lcd.write(255); lcd.setCursor(col + 1, 2); lcd.write(254); lcd.setCursor(col + 2, 2); lcd.write(254); lcd.setCursor(col + 3, 2); lcd.write(255);
lcd.setCursor(col, 3); lcd.write(255); lcd.setCursor(col + 1, 3); lcd.write(5 ); lcd.setCursor(col + 2, 3); lcd.write(5 ); lcd.setCursor(col + 3, 3); lcd.write(255);
}
void putDigit(int digit, int col)
{
switch (digit)
{
case 0: char0(col); break;
case 1: char1(col); break;
case 2: char2(col); break;
case 3: char3(col); break;
case 4: char4(col); break;
case 5: char5(col); break;
case 6: char6(col); break;
case 7: char7(col); break;
case 8: char8(col); break;
case 9: char9(col); break;
}
}
void printVol()
{
//lcd.setCursor(col + 0, 1);
//lcd.print(volume);
putDigit((63-volume) % 10, 8);
putDigit((63-volume) / 10, 3);
charMinus(0);
charDB(13);
}
Социальные закладки