LCD 16x2

JIEB
Offline
Зарегистрирован: 29.04.2016

Понадобилось сделать большие цифры 3x2. Вот 0 и 1

uint8_t nol1[8] = {B00111,B01111,B11110,B11100,B11100,B11100,B11100,B11100};
uint8_t nol2[8] = {B11111,B11111,B00000,B00000,B00000,B00000,B00000,B00000};
uint8_t nol3[8] = {B11100,B11110,B01111,B00111,B00111,B00111,B00111,B00111};
uint8_t nol4[8] = {B11100,B11100,B11100,B11100,B11100,B11110,B01111,B00111};
uint8_t nol5[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B11111,B11111};
uint8_t nol6[8] = {B00111,B00111,B00111,B00111,B00111,B01111,B11110,B11100};
//1
uint8_t odin1[8] = {B00000,B00000,B00001,B00011,B00111,B00000,B00000,B00000};
uint8_t odin2[8] = {B01111,B11111,B11111,B11111,B11111,B11111,B11111,B11111};
uint8_t odin3[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B00000,B00000};
uint8_t odin4[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B00011,B00111};
uint8_t odin5[8] = {B11111,B11111,B11111,B11111,B11111,B11111,B11111,B11111};
uint8_t odin6[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B11000,B11100};

Но проблема в том, что отобразив одну цифру, нельзя отобразить другую, т.к все CreateChar() заняты, что же делать ? как быть?И на табло светится последняя выводимая цифра, если вывести сразу две разных. Использую функцию 

void ShowNum(int x,int str){
 switch(x){
   case 0:
      lcd.createChar(1, nol1);
      lcd.createChar(2, nol2);
      lcd.createChar(3, nol3);
      lcd.createChar(4, nol4);
      lcd.createChar(5, nol5);
      lcd.createChar(6, nol6);   
      lcd.clear();
      lcd.setCursor(str,0);
      lcd.print("\1");
      lcd.print("\2");
      lcd.print("\3");
      lcd.setCursor(str,1);
      lcd.print("\4");
      lcd.print("\5");
      lcd.print("\6");
      break;
   
   case 1:
      lcd.createChar(1, odin1);
      lcd.createChar(2, odin2);
      lcd.createChar(3, odin3);
      lcd.createChar(4, odin4);
      lcd.createChar(5, odin5);
      lcd.createChar(6, odin6);  
      lcd.clear();
      lcd.setCursor(str,0);
      lcd.print("\1");
      lcd.print("\2");
      lcd.print("\3");
      lcd.setCursor(str,1);
      lcd.print("\4");
      lcd.print("\5");
      lcd.print("\6");
      break;
}
}

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Взять графический дисплей, а не текстовый.

arduinec
Offline
Зарегистрирован: 01.09.2015