Большой текст на lcd 1602

vov4ik
Offline
Зарегистрирован: 10.09.2013

Народ помогите разобратся нужен вывод больших 4 цыфр, на просторах интернета нашол несколько примеров но работаю с i2c http://habrahabr.ru/post/219137/  http://www.instructables.com/id/Custom-Large-Font-For-16x2-LCDs/step5/Arduino-Sketch/  у меня без i2c при попытке переписать уперся 

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte LT[8] = {19, 25, 40, 44, 42, 40, 36, 34};
byte UB[8] = {74, 72, 71, 44, 42, 40, 36, 34};
byte RT[8] = {71, 71, 71, 75, 73, 71, 67, 65};
byte LL[8] = {74, 72, 71, 75, 73, 71, 51, 41};
byte LB[8] = {74, 72, 71, 75, 73, 102, 82, 72};
byte LR[8] = {105, 103, 102, 106, 104, 102, 81, 69};
byte MB[8] = {105, 103, 102, 75, 73, 71, 82, 72};
byte block[8] = {105, 103, 102, 106, 104, 102, 82, 72};
int count = 0;

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16,2);
    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 custom0(int x)
{ // uses segments to build the number 0
  lcd.setCursor(x,0); // set cursor to column 0, line 0 (first row)
  lcd.write(0);  // call each segment to create
  lcd.write(1);  // top half of the number
  lcd.write(2);
  lcd.setCursor(x, 1); // set cursor to colum 0, line 1 (second row)
  lcd.write(3);  // call each segment to create
  lcd.write(4);  // bottom half of the number
  lcd.write(5);
}

 

Snubist
Offline
Зарегистрирован: 18.02.2013

Не понятно в чем загвозка? Помоему для каждого write надо устанавливать свой курсор.

vov4ik
Offline
Зарегистрирован: 10.09.2013

Всё гугол сдался http://www.youtube.com/watch?v=MeCZi3DPNtw

вот пример от него и плешу https://gist.github.com/ronivaldo/5587355/download#

 

vosara52
Offline
Зарегистрирован: 28.11.2014

vov4ik пишет:

Народ помогите разобратся нужен вывод больших 4 цыфр, на просторах интернета нашол несколько примеров но работаю с i2c http://habrahabr.ru/post/219137/  http://www.instructables.com/id/Custom-Large-Font-For-16x2-LCDs/step5/Arduino-Sketch/  у меня без i2c при попытке переписать уперся 

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte LT[8] = {19, 25, 40, 44, 42, 40, 36, 34};
byte UB[8] = {74, 72, 71, 44, 42, 40, 36, 34};
byte RT[8] = {71, 71, 71, 75, 73, 71, 67, 65};
byte LL[8] = {74, 72, 71, 75, 73, 71, 51, 41};
byte LB[8] = {74, 72, 71, 75, 73, 102, 82, 72};
byte LR[8] = {105, 103, 102, 106, 104, 102, 81, 69};
byte MB[8] = {105, 103, 102, 75, 73, 71, 82, 72};
byte block[8] = {105, 103, 102, 106, 104, 102, 82, 72};
int count = 0;

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16,2);
    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 custom0(int x)
{ // uses segments to build the number 0
  lcd.setCursor(x,0); // set cursor to column 0, line 0 (first row)
  lcd.write(0);  // call each segment to create
  lcd.write(1);  // top half of the number
  lcd.write(2);
  lcd.setCursor(x, 1); // set cursor to colum 0, line 1 (second row)
  lcd.write(3);  // call each segment to create
  lcd.write(4);  // bottom half of the number
  lcd.write(5);
}

 

Я делал себе кухонный таймер а за одно и часы. Для них как раз и сделал большие цыфры.

Фото постараюсь загрузить, если заинтересует напиши поделюсь а поповоду твоего кода то я создавал и загружал его также и все работает! Единственное что нулевой символ дисплей не принял, я поменял 1-8

vov4ik
Offline
Зарегистрирован: 10.09.2013

Да в принцепе уже разобрался и шрифт в примере мне понравился, щас прилизываю код когда будет готов выложу.