LiquidCrystal вертикальный символы - Arduino
- Войдите на сайт для отправки комментариев
Сб, 29/04/2017 - 07:48
Доброго времени суток, решил создать свои символы на LiquidCrystal по вертикали, нарисовал единичку показывает норм, рядом добавил пятерочку получил место 1->5 и место 5->разбитую 5 (можно на рисунке посмотреть)


вот полный код
#include <BigCrystal.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
BigCrystal bigCrystal(&lcd);
/********************edinica********************/
byte edinica1[8] = {
0b11111,
0b11111,
0b01111,
0b00111,
0b00011,
0b00001,
0b00000,
0b00000
};
byte edinica2[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b11111,
0b11111,
0b11111
};
byte edinica3[8] = {
0b11111,
0b11111,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b00000
};
byte edinica4[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b11111,
0b11111,
0b11111
};
byte edinica5[8] = {
0b11111,
0b11111,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
byte edinica6[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b11111,
0b11111,
0b11111
};
byte edinica7[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b00000
};
byte edinica8[8] = {
0b00000,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
/********************The End********************/
/******************** Pyat *********************/
byte pyat1[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b01111,
0b00111
};
byte pyat2[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
byte pyat3[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
byte pyat4[8] = {
0b00000,
0b00001,
0b00011,
0b00011,
0b00011,
0b00011,
0b00011,
0b00011
};
byte pyat5[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
byte pyat6[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
byte pyat7[8] = {
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
byte pyat8[8] = {
0b11100,
0b11110,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
/********************* The End *********************/
/**/
/**/
void setup() {
bigCrystal.begin(20, 4);
/********************edinica********************/
lcd.createChar(1, edinica1);
lcd.createChar(2, edinica2);
lcd.createChar(3, edinica3);
lcd.createChar(4, edinica4);
lcd.createChar(5, edinica5);
lcd.createChar(6, edinica6);
lcd.createChar(7, edinica7);
lcd.createChar(8, edinica8);
/********************The End********************/
/********************* Pyat *********************/
lcd.createChar(9, pyat1);
lcd.createChar(10, pyat2);
lcd.createChar(11, pyat3);
lcd.createChar(12, pyat4);
lcd.createChar(13, pyat5);
lcd.createChar(14, pyat6);
lcd.createChar(15, pyat7);
lcd.createChar(16, pyat8);
/********************* The End *********************/
/**/
/**/
}
void loop() {
/**/
lcd.setCursor(19,0);
lcd.write((uint8_t)16);
lcd.setCursor(19,1);
lcd.write((uint8_t)15);
lcd.setCursor(18,0);
lcd.write((uint8_t)14);
lcd.setCursor(18,1);
lcd.write((uint8_t)13);
lcd.setCursor(17,0);
lcd.write((uint8_t)12);
lcd.setCursor(17,1);
lcd.write((uint8_t)11);
lcd.setCursor(16,0);
lcd.write((uint8_t)10);
lcd.setCursor(16,1);
lcd.write((uint8_t)9);
/**/
/********************edinica********************/
lcd.setCursor(19,2);
lcd.write((uint8_t)8);
lcd.setCursor(19,3);
lcd.write((uint8_t)7);
lcd.setCursor(18,2);
lcd.write((uint8_t)6);
lcd.setCursor(18,3);
lcd.write((uint8_t)5);
lcd.setCursor(17,2);
lcd.write((uint8_t)4);
lcd.setCursor(17,3);
lcd.write((uint8_t)3);
lcd.setCursor(16,2);
lcd.write((uint8_t)2);
lcd.setCursor(16,3);
lcd.write((uint8_t)1);
/******************** The End ********************/
}
Если мне не изменяет память, создать можно не более 8 своих символов.
а как то можно 8 символы в один массив запихать
Если мне не изменяет память, создать можно не более 8 своих символов.
Можно сколько угодно, но не более 8 для одной отображаемой страницы. Так наверно правильнее.
lcd.createCharс нуля начинайте , а не с 1. Т.е. используйте коды не 1...16, а 0...15. Потому как 16-й уже не user-code-symbolСпасибо за картиночку, это цифры состоит из 3-х столбцов и из 2-х строк (3х2), эти цифры у меня было в предедушем проекте, сечас переделываю ее на вертикальное отображение, точнее 2 столбца и 4 строки (2х4), вот до этого я не знал что LCD больше 8ми символов не принимает, узнал про это в форуме, случайно нету у вас вертикальные отображение цифры.
наконецто сделал