LCD 1602 I2C вывод кирилицы

LCD 1602 I2C вывод кирилицы

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01.10.2020{, 20:27}
Репутация: 1
Имя: Герман

LCD 1602 I2C вывод кирилицы

#1

Сообщение German » 10.11.2020{, 13:59}

Доброго времени суток, уважаемые форумчане! Вознамерился сваять блок для вывода кириллицы на LCD дисплей 1602, который в своей прошивке не имеет кириллических символов. Нашёл соответствующие библиотеки.
В Arduino IDE всё прекрасно работает, русские буквы прекрасно выводятся на дисплей. Но при создании блока, FLprog ругается на ошибки в блоке. А какие ошибки! Не говорит!
После долгих мучений решил загнать в блок простейший примерчик из библиотеки, без переменных и входов. Опять "ошибки в блоке"!
Я не прошу, чтобы за меня сделали всю работу (интересней сделать самому), но может кто подскажет, хотя бы в какую сторону двигаться.
Привожу вариант того самого примерчика:
Используются библиотеки:
LCD_1602_RUS_ALL
LiquidCrystal_I2C

//Пример для подключения дисплея по шине I2C
//
//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
//Если этого не сделать, при компиляции возникнет ошибка: "LCD type connect has not been declared"
#define _LCD_TYPE 1
#include <LCD_1602_RUS_ALL.h>

//Выделим два переопределяемых символа
LCD_1602_RUS <LiquidCrystal_I2C> lcd(0x3F, 16, 2, 2);



void setup()
{
lcd.init(); // Инициализация LCD
// Печать сообщения на LCD
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("__Старт");
lcd.setCursor(2, 1);
lcd.print("Мои символы:");


}

Ardudue
Лейтенант
Сообщения: 423
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

LCD 1602 I2C вывод кирилицы

#2

Сообщение Ardudue » 10.11.2020{, 16:09}


Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#3

Сообщение Dryundel » 10.11.2020{, 16:23}

Дык что же ты German, на пальцах то объясняешь?
По этим объяснениям, диагноз такой - Это может быть все что угодно.
Прикрепи пример рабочий, на основе которого хочешь блок сделать и проект который ошибки выдает.
Вот тогда и поговорим.

Отправлено спустя 4 часа 25 минут 41 секунду:
Да, к стати, German, Вы проверяли как ваш блок компилируется в IDE?
В описании "примерчика" сказано:
German писал(а):
10.11.2020{, 13:59}
//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
//Если этого не сделать, при компиляции возникнет ошибка: "LCD type connect has not been declared"
Это пишет IDE?
Значит #define _LCD_TYPE 1 съехало ниже #include <LCD_1602_RUS_ALL.h>

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#4

Сообщение Dryundel » 11.11.2020{, 19:58}

Итак!
Тестовая версия русифицирующего блока дисплея.
(Для дисплеев не имеющих на борту кириллицы!)

Почти полный аналог штатного блока. Пользоваться абсолютно так же.
Поддержка только FLProg 7.0 и выше.
.
LCD-RUS-test.jpg
LCD-RUS-test.jpg (5.69 КБ) 2693 просмотра
.
На борту имеются все прописные и заглавные кириллицы а так же украинские буквы. + знак градуса
Делать ничего не нужно, просто подаете на вход русский текст.

НО ПОМНИТЕ - РОВНО В 12 КАРЕТА ПРЕВРАТИТЬСЯ В ТЫКВУ! :smile171:

А если серьезно, ограничение в 8 уникальных символов, выводимых одновременно на дисплей, останется по любому.
Еще раз повторюсь. 8 УНИКАЛЬНЫХ символов

Повторения и совпадение по начертанию с латиницей не в счёт! (если к примеру буква "Ж" повторяется 10 раз, то это всего один уникальный символ. Можно ещё 7.

Речь идет о таких буквах как Б, б, Г, г, Д, д, Ж, ж, З, з... И так далее.
Такие буквы как А, В, Е, К..... и т.д. не считаются.

Одновременный вывод повторяющихся символов - не ограничен!
Вывод латиницы - не ограничен!

Тестировалось только подключение по I2C
4 битное подключение не тестировал пока.
У кого есть время и возможность протестируйте 4 битное подключение (без I2C адаптера) и отпишитесь.

Недостатки:
- Блок занимает довольно много места в памяти. Около 3,3 кБ (10% Arduino NANO),
но это только первый экземпляр. Все последующие всего по 30 байт.
- Не поддерживается более одного дисплея.
- Не совместим с одновременным использованием штатного блока дисплея (это пока). :)

Пробуйте, тестируйте, отписывайтесь.
LCD-RUS-test_(Code_-_Professional).ubi
(319.6 КБ) 182 скачивания
Dryundel писал(а):
13.11.2020{, 01:48}
< Следующий пост >
Добавил параметр "Мигающий символ"
Последний раз редактировалось Dryundel 13.11.2020{, 08:31}, всего редактировалось 2 раза.

Ardudue
Лейтенант
Сообщения: 423
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

LCD 1602 I2C вывод кирилицы

#5

Сообщение Ardudue » 11.11.2020{, 20:14}

Dryundel, надо еще с десяток тем сделать по русификации LCD1602.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#6

Сообщение Dryundel » 11.11.2020{, 20:19}

Ardudue писал(а):
11.11.2020{, 20:14}
Dryundel, надо еще с десяток тем сделать по русификации LCD1602.
Кароч. Претензии не ко мне. Я этой темы не создавал.
Последний раз редактировалось Dryundel 11.11.2020{, 21:42}, всего редактировалось 1 раз.

Ardudue
Лейтенант
Сообщения: 423
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

LCD 1602 I2C вывод кирилицы

#7

Сообщение Ardudue » 11.11.2020{, 20:24}

так я же выше автору темы далл ссылку на уже существующую тему...

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01.10.2020{, 20:27}
Репутация: 1
Имя: Герман

LCD 1602 I2C вывод кирилицы

#8

Сообщение German » 11.11.2020{, 20:41}

Блок обязательно протестирую, но не могу скачать Семёрку, там какие-то проблемы с доменом...
P.S. Огромная благодарность Андрею за помощь!

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01.10.2020{, 20:27}
Репутация: 1
Имя: Герман

LCD 1602 I2C вывод кирилицы

#9

Сообщение German » 12.11.2020{, 20:52}

Блок отлично работает! Тестировал по I2C на портативной версии. Занимает 23% Arduino NANO.

Вообще, и это вопрос принципиальный, нужно вставить этот блок в семёрку, в качестве стандартного.
Если необходимо, составить петицию, подписи и т.д. и выйти на Сергея Глушенко.

ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....

Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.

Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Я знаю, очень даже многие, скажут:
- "Это всё фигня, я уже так привык, мне и так хорошо", и я такой крутой, у меня всё на английском.
Парень! Скоро у тебя всё будет на китайском! Ты и так уже, на коленях, и скоро примешь другую позу, догадаешься какую...

ДА Я ЛЮБЛЮ СВОЮ СТРАНУ, СВОЙ НАРОД И СВОЙ РОДНОЙ ЯЗЫК!!!

P.S. Большое спасибо Андрею за созданный блок. Я с удовольствием включился бы в работу
по усовершенствованию блока, но мой уровень в программировании слишком мал. Будем учиться.
P.S.2. А Семёрочка - хороша!!! Сергею Глушенко респект и уважуха!

Щас пощёлкаю по рекламным ссылкам, ребятам надо помочь!

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#10

Сообщение Dryundel » 13.11.2020{, 01:48}

Dryundel писал(а):
11.11.2020{, 19:58}
< Предыдущий пост >
Первая тестовая версия.
.
Тестовая версия русифицирующего блока дисплея v0.2.
(Для дисплеев не имеющих на борту кириллицы!)

Добавил параметр "Мигающий символ"

При активации данного параметра у блока появляется вход " # " В этом случае перед значением которое выводит блок на дисплей будет добавлен один пустой знак для вывода мигающего символа и соответственно строка сдвигается вправо и для вывода значения потребуется на один знак больше.

При подаче на вход " # " высокого уровня выбранный символ начнет мигать.
Данный мигающий символ не грузит процессор, а так же не мигают строки.
Надеюсь это многим поможет при организации меню.

Выглядит это таким образом:
.
2020-11-13_013521.jpg
2020-11-13_013521.jpg (6.73 КБ) 2524 просмотра
.
2020-11-13_013342.jpg
2020-11-13_013342.jpg (51.22 КБ) 2524 просмотра
.
LCD-RUS-test2_(Code_-_Professional).ubi
(387.55 КБ) 147 скачиваний
.
Dryundel писал(а):
13.11.2020{, 12:48}
< Следующий пост >
Добавлена возможность выравнивания "По центру" и "СПРАВА" !
Последний раз редактировалось Dryundel 13.11.2020{, 17:19}, всего редактировалось 4 раза.

Ardudue
Лейтенант
Сообщения: 423
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

LCD 1602 I2C вывод кирилицы

#11

Сообщение Ardudue » 13.11.2020{, 06:12}

German писал(а):
12.11.2020{, 20:52}
ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....

Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.

Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Ваша проблема в знаниях.
Китайцы просто прошивают чипы дисплея на какие хотят языки и торгуют ими.
Просто распотрошите дисплей как это сделали китайцы и шейте в чип символы какие хотите.
Правда они еще и свои чипы сделали ST7066U и ST7065S и клепают.
Давайте построим завод по выпуску чипов и дисплеев, и вместо гадкой цены $1.2 на наши родненькие цену установим 1,2Р.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#12

Сообщение Dryundel » 13.11.2020{, 12:48}

Dryundel писал(а):
13.11.2020{, 01:48}
< Предыдущий пост >
Добавил параметр "Мигающий символ"
.
Тестовая версия русифицирующего блока дисплея v0.3.
(Для дисплеев не имеющих на борту кириллицы!)

Добавлена возможность выравнивания "По центру" и "СПРАВА" !
.
2020-11-13_124059.jpg
2020-11-13_124059.jpg (61.77 КБ) 2453 просмотра
.
Внимание!
При установке выравнивания "По центру" или "Справа", обязательно укажите
раскладку клавиатуры RU или EN (Параметр "Раскладка клавиатуры").
В случае неправильно выставленного параметра "Раскладка клавиатуры",
или при использовании смешанного ввода, адекватность выравнивания не гарантирована.

Тестируем:
LCD-RUS-test3_(Code_-_Professional).ubi
(472.33 КБ) 147 скачиваний
Отправлено спустя 4 часа 4 минуты 10 секунд:
PS все служебные символы типа + - / * = > < и т.п. , а так же цифры "относятся" к латинице, не смотря на то, что были введены с русской раскладки. Этот момент обязательно надо учитывать при использовании выравнивания.
Попросту говоря, сложность в том, что все русские буквы являются двух-байтовыми, а все остальное одо-байтовое.
.
Dryundel писал(а):
16.11.2020{, 12:54}
Следующий пост
Добавлен параметр "Мигающее значение"
Добавлен вспомогательный блок управления подсветкой по I2C
Последний раз редактировалось Dryundel 16.11.2020{, 13:05}, всего редактировалось 2 раза.

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01.10.2020{, 20:27}
Репутация: 1
Имя: Герман

LCD 1602 I2C вывод кирилицы

#13

Сообщение German » 13.11.2020{, 18:13}

Третья версия работает. Мигающий символ, очень удобен. Я его делал в блоке обработчика кнопок на генераторе. Выравнивание,то же работает. Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Последний раз редактировалось German 01.12.2020{, 20:29}, всего редактировалось 1 раз.

Ardudue
Лейтенант
Сообщения: 423
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

LCD 1602 I2C вывод кирилицы

#14

Сообщение Ardudue » 13.11.2020{, 18:28}

Dryundel писал(а):
13.11.2020{, 16:53}
Тестируем:
LCD-RUS-test3_(Code_-_Professional).ubi
не компилируется - STM32
Используем библиотеку Wire версии 1.0 из папки: D:\Program Files\FLProg_7-1-1_Win64\ideV5\hardware\Arduino_STM32-master\STM32F1\libraries\Wire
Используем библиотеку LCD_1602_RUS_ALL версии 1.2.0 из папки: d:\Program Files\FLProg_7-1-1_Win64\ideV5\libraries\LCD_1602_RUS_ALL
Используем библиотеку LiquidCrystal_I2C в папке: d:\Program Files\FLProg_7-1-1_Win64\ideV5\libraries\LiquidCrystal_I2C
exit status 1
Ошибка компиляции для платы Generic STM32F103C series.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

LCD 1602 I2C вывод кирилицы

#15

Сообщение ecoins » 13.11.2020{, 18:51}

Ardudue писал(а):
13.11.2020{, 18:28}
не компилируется - STM32
Библиотека и блоки LCD от ecoins работает и на STM32.
Но идеология блоков иная. Но и возможности гораздо большие, и проекты "не тормозят".
Есть поддержка LCD с кириллицей.
Можно конечно добавить опцию и для LCD без кириллицей, но надо понимать и следующие особенности:
1.Более интенсивный обмен с LCD - в случае с i2c это может стать проблемой;
2.Занимает дополнительную память - для контроллеров типа AVR328 (2кБ ОЗУ, 32кБ Флэш) это тоже проблема;
3.Дисплей LCD 16x2 с русскими буквами - стоимость 315 рублей с доставкой.
https://aliexpress.ru/item/32894550300. ... hweb201603_
Дисплей без русских букв -115руб.
Вряд ли прикладной проект будет дешевле 1000руб, и разница в 200 руб. в подобных случаях не критична.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#16

Сообщение Dryundel » 13.11.2020{, 20:50}

German писал(а):
13.11.2020{, 18:13}
Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Ничего не поделаешь, за удобство приходится платить. Библиотека обеспечивающая русификацию довольно увесистая штука.
Ardudue писал(а):
13.11.2020{, 18:28}
Ошибка компиляции для платы Generic STM32F103C series.
Спасибо за информаци. С STM-ками пока не разбирался. Блок в первую очередь делался для AVR. Думаю на следующем этапе, когда реализуются все задумки, адаптируем и под STM.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#17

Сообщение Dryundel » 13.11.2020{, 21:03}

ecoins писал(а):
13.11.2020{, 18:51}
Библиотека и блоки LCD от ecoins работает и на STM32.
Но идеология блоков иная. Но и возможности гораздо большие, и проекты "не тормозят".....
ecoins, Я конечно Вас очень уважаю за ваш неоценимый вклад в разработки библиотек для FLProg.
Но зачем же так? Эта тема не для обсуждения достоинств Ваших библиотек. Хотя в их безупречности никто не сомневается.
А вот так мелко гадить в не профильной ветке, не просто не кашерно, а даже пошло с Вашей стороны. Не ожидал.
ecoins писал(а):
13.11.2020{, 18:51}
Можно конечно добавить опцию и для LCD без кириллицей...
Ну так добавьте, ни кто Вам не мешает. А заодно и сделайте удобный для пользования блок, с нормальным описанием, который можно без танцев с бубном применить в проекте. И такой, что бы он работал с любой версией вашей библиотеки, а не только с той которая когда то, где то была рядом. И еще выложите его так, что бы можно было легко найти при надобности а не перекапывать тысячу постов попутного хлама.
В противном случае грош цена блоку который крут только потому, что работает чуть быстрее. Да 90% пользователей на этом форуме не требуется ваша скорость. А остальные, в том числе и я, с удовольствием поучатся на ваших разработках и спасибо скажем. Не сомневайтесь.

Развели свалку в своей ветке, теперь со своим баяном к другим лезете.
Последний раз редактировалось Dryundel 14.11.2020{, 08:28}, всего редактировалось 2 раза.

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01.10.2020{, 20:27}
Репутация: 1
Имя: Герман

LCD 1602 I2C вывод кирилицы

#18

Сообщение German » 13.11.2020{, 22:07}

При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

LCD 1602 I2C вывод кирилицы

#19

Сообщение Dryundel » 13.11.2020{, 23:42}

German писал(а):
13.11.2020{, 22:07}
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
....
хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
Вы хотели бы что бы интерфейс был такой же как у штатных блоков? Похвальное желание. :)
Я бы тоже этого хотел. Но этого не предусмотрено редактором ПБ. Имеем то что имеем.

Вас сбивает слово "значение"? С этим тоже ничего не могу поделать. Его не убрать, выводится автоматом. Задам вопрос Сергею, может уберет.

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

LCD 1602 I2C вывод кирилицы

#20

Сообщение vovka1973 » 14.11.2020{, 07:54}

German писал(а):
13.11.2020{, 22:07}
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
А мне наоборот больше пользовательский блок понравился ,я так понял он сделан в новом редакторе ,супер!!!!! блок для дисплея.
Изображение

Ответить

Вернуться в «Помогите, а то я "нимагу"»