Страница 1 из 3
LCD 1602 I2C вывод кирилицы
Добавлено: 10 ноя 2020, 13:59
German
Доброго времени суток, уважаемые форумчане! Вознамерился сваять блок для вывода кириллицы на 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("Мои символы:");
}
LCD 1602 I2C вывод кирилицы
Добавлено: 10 ноя 2020, 16:09
Ardudue
LCD 1602 I2C вывод кирилицы
Добавлено: 10 ноя 2020, 20:49
Dryundel
Дык что же ты [ref]German[/ref], на пальцах то объясняешь?
По этим объяснениям, диагноз такой - Это может быть все что угодно.
Прикрепи пример рабочий, на основе которого хочешь блок сделать и проект который ошибки выдает.
Вот тогда и поговорим.
Отправлено спустя 4 часа 25 минут 41 секунду:
Да, к стати, [ref]German[/ref], Вы проверяли как ваш блок компилируется в IDE?
В описании "примерчика" сказано:
German писал(а): 10 ноя 2020, 13:59
//Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
//Если этого не сделать, при компиляции возникнет ошибка:
"LCD type connect has not been declared"
Это пишет IDE?
Значит
#define _LCD_TYPE 1 съехало ниже
#include <LCD_1602_RUS_ALL.h>
LCD 1602 I2C вывод кирилицы
Добавлено: 11 ноя 2020, 19:58
Dryundel
Итак!
Тестовая версия русифицирующего блока дисплея.
(Для дисплеев не имеющих на борту кириллицы!)
Почти полный аналог штатного блока. Пользоваться абсолютно так же.
Поддержка только FLProg 7.0 и выше.
.
LCD-RUS-test.jpg
.
На борту имеются все прописные и заглавные кириллицы а так же украинские буквы. + знак градуса
Делать ничего не нужно, просто подаете на вход русский текст.
НО ПОМНИТЕ - РОВНО В 12 КАРЕТА ПРЕВРАТИТЬСЯ В ТЫКВУ!
А если серьезно, ограничение в 8 уникальных символов, выводимых одновременно на дисплей, останется по любому.
Еще раз повторюсь. 8 УНИКАЛЬНЫХ символов
Повторения и совпадение по начертанию с латиницей не в счёт! (если к примеру буква "Ж" повторяется 10 раз, то это всего один уникальный символ. Можно ещё 7.
Речь идет о таких буквах как Б, б, Г, г, Д, д, Ж, ж, З, з... И так далее.
Такие буквы как А, В, Е, К..... и т.д. не считаются.
Одновременный вывод повторяющихся символов - не ограничен!
Вывод латиницы - не ограничен!
Тестировалось только подключение по I2C
4 битное подключение не тестировал пока.
У кого есть время и возможность протестируйте 4 битное подключение (без I2C адаптера) и отпишитесь.
Недостатки:
- Блок занимает довольно много места в памяти. Около 3,3 кБ (10% Arduino NANO),
но это только первый экземпляр. Все последующие всего по 30 байт.
- Не поддерживается более одного дисплея.
- Не совместим с одновременным использованием штатного блока дисплея (это пока).
Пробуйте, тестируйте, отписывайтесь.
LCD-RUS-test_(Code_-_Professional).ubi
Dryundel писал(а): 13 ноя 2020, 01:48
< Следующий пост >
Добавил параметр "Мигающий символ"
LCD 1602 I2C вывод кирилицы
Добавлено: 11 ноя 2020, 20:14
Ardudue
[ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
LCD 1602 I2C вывод кирилицы
Добавлено: 11 ноя 2020, 20:19
Dryundel
Ardudue писал(а): 11 ноя 2020, 20:14
[ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
Кароч. Претензии не ко мне. Я этой темы не создавал.
LCD 1602 I2C вывод кирилицы
Добавлено: 11 ноя 2020, 20:24
Ardudue
так я же выше автору темы далл ссылку на уже существующую тему...
LCD 1602 I2C вывод кирилицы
Добавлено: 11 ноя 2020, 20:41
German
Блок обязательно протестирую, но не могу скачать Семёрку, там какие-то проблемы с доменом...
P.S. Огромная благодарность Андрею за помощь!
LCD 1602 I2C вывод кирилицы
Добавлено: 12 ноя 2020, 20:52
German
Блок отлично работает! Тестировал по I2C на портативной версии. Занимает 23% Arduino NANO.
Вообще, и это вопрос принципиальный, нужно вставить этот блок в семёрку, в качестве стандартного.
Если необходимо, составить петицию, подписи и т.д. и выйти на Сергея Глушенко.
ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....
Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.
Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Я знаю, очень даже многие, скажут:
- "Это всё фигня, я уже так привык, мне и так хорошо", и я такой крутой, у меня всё на английском.
Парень! Скоро у тебя всё будет на китайском! Ты и так уже, на коленях, и скоро примешь другую позу, догадаешься какую...
ДА Я ЛЮБЛЮ СВОЮ СТРАНУ, СВОЙ НАРОД И СВОЙ РОДНОЙ ЯЗЫК!!!
P.S. Большое спасибо Андрею за созданный блок. Я с удовольствием включился бы в работу
по усовершенствованию блока, но мой уровень в программировании слишком мал. Будем учиться.
P.S.2. А Семёрочка - хороша!!! Сергею Глушенко респект и уважуха!
Щас пощёлкаю по рекламным ссылкам, ребятам надо помочь!
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 01:48
Dryundel
Dryundel писал(а): 11 ноя 2020, 19:58
< Предыдущий пост >
Первая тестовая версия.
.
Тестовая версия русифицирующего блока дисплея v0.2.
(Для дисплеев не имеющих на борту кириллицы!)
Добавил параметр "Мигающий символ"
При активации данного параметра у блока появляется вход " # " В этом случае перед значением которое выводит блок на дисплей будет добавлен один пустой знак для вывода мигающего символа и соответственно строка сдвигается вправо и для вывода значения потребуется на один знак больше.
При подаче на вход " # " высокого уровня выбранный символ начнет мигать.
Данный мигающий символ не грузит процессор, а так же не мигают строки.
Надеюсь это многим поможет при организации меню.
Выглядит это таким образом:
.
2020-11-13_013521.jpg
.
2020-11-13_013342.jpg
.
LCD-RUS-test2_(Code_-_Professional).ubi
.
Dryundel писал(а): 13 ноя 2020, 12:48
< Следующий пост >
Добавлена возможность выравнивания "По центру" и "СПРАВА" !
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 06:12
Ardudue
German писал(а): 12 ноя 2020, 20:52
ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....
Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.
Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Ваша проблема в знаниях.
Китайцы просто прошивают чипы дисплея на какие хотят языки и торгуют ими.
Просто распотрошите дисплей как это сделали китайцы и шейте в чип символы какие хотите.
Правда они еще и свои чипы сделали ST7066U и ST7065S и клепают.
Давайте построим завод по выпуску чипов и дисплеев, и вместо гадкой цены $1.2 на наши родненькие цену установим 1,2Р.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 16:53
Dryundel
Dryundel писал(а): 13 ноя 2020, 01:48
< Предыдущий пост >
Добавил параметр "Мигающий символ"
.
Тестовая версия русифицирующего блока дисплея v0.3.
(Для дисплеев не имеющих на борту кириллицы!)
Добавлена возможность выравнивания "По центру" и
"СПРАВА" !
.
2020-11-13_124059.jpg
.
Внимание!
При установке выравнивания "По центру" или "Справа", обязательно укажите
раскладку клавиатуры RU или EN (Параметр "Раскладка клавиатуры").
В случае неправильно выставленного параметра "Раскладка клавиатуры",
или при использовании смешанного ввода, адекватность выравнивания не гарантирована.
Тестируем:
LCD-RUS-test3_(Code_-_Professional).ubi
Отправлено спустя 4 часа 4 минуты 10 секунд:
PS все служебные символы типа + - / * = > < и т.п. , а так же цифры "относятся" к латинице, не смотря на то, что были введены с русской раскладки. Этот момент обязательно надо учитывать при использовании выравнивания.
Попросту говоря, сложность в том, что все русские буквы являются двух-байтовыми, а все остальное одо-байтовое.
.
Dryundel писал(а): 16 ноя 2020, 12:54
Следующий пост
Добавлен параметр "Мигающее значение"
Добавлен вспомогательный блок управления подсветкой по I2C
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 18:13
German
Третья версия работает. Мигающий символ, очень удобен. Я его делал в блоке обработчика кнопок на генераторе. Выравнивание,то же работает. Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 18:28
Ardudue
Dryundel писал(а): 13 ноя 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.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 18:51
ecoins
Ardudue писал(а): 13 ноя 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. ... web201603_
Дисплей без русских букв -115руб.
Вряд ли прикладной проект будет дешевле 1000руб, и разница в 200 руб. в подобных случаях не критична.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 20:50
Dryundel
German писал(а): 13 ноя 2020, 18:13
Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Ничего не поделаешь, за удобство приходится платить. Библиотека обеспечивающая русификацию довольно увесистая штука.
Ardudue писал(а): 13 ноя 2020, 18:28
Ошибка компиляции для платы Generic STM32F103C series.
Спасибо за информаци. С STM-ками пока не разбирался. Блок в первую очередь делался для AVR. Думаю на следующем этапе, когда реализуются все задумки, адаптируем и под STM.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 21:03
Dryundel
ecoins писал(а): 13 ноя 2020, 18:51
Библиотека и блоки LCD от ecoins работает и на STM32.
Но идеология блоков иная. Но и возможности гораздо большие, и проекты "не тормозят".....
[ref]ecoins[/ref], Я конечно Вас очень уважаю за ваш неоценимый вклад в разработки библиотек для FLProg.
Но зачем же так? Эта тема не для обсуждения достоинств Ваших библиотек. Хотя в их безупречности никто не сомневается.
А вот так мелко гадить в не профильной ветке, не просто не кашерно, а даже пошло с Вашей стороны. Не ожидал.
ecoins писал(а): 13 ноя 2020, 18:51
Можно конечно добавить опцию и для LCD без кириллицей...
Ну так добавьте, ни кто Вам не мешает. А заодно и сделайте удобный для пользования блок, с нормальным описанием, который можно без танцев с бубном применить в проекте. И такой, что бы он работал с любой версией вашей библиотеки, а не только с той которая когда то, где то была рядом. И еще выложите его так, что бы можно было легко найти при надобности а не перекапывать тысячу постов попутного хлама.
В противном случае грош цена блоку который крут только потому, что работает чуть быстрее. Да 90% пользователей на этом форуме не требуется ваша скорость. А остальные, в том числе и я, с удовольствием поучатся на ваших разработках и спасибо скажем. Не сомневайтесь.
Развели свалку в своей ветке, теперь со своим баяном к другим лезете.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 22:07
German
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
LCD 1602 I2C вывод кирилицы
Добавлено: 13 ноя 2020, 23:42
Dryundel
German писал(а): 13 ноя 2020, 22:07
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
....
хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
Вы хотели бы что бы интерфейс был такой же как у штатных блоков? Похвальное желание.
Я бы тоже этого хотел. Но этого не предусмотрено редактором ПБ. Имеем то что имеем.
Вас сбивает слово "значение"? С этим тоже ничего не могу поделать. Его не убрать, выводится автоматом. Задам вопрос Сергею, может уберет.
LCD 1602 I2C вывод кирилицы
Добавлено: 14 ноя 2020, 07:54
vovka1973
German писал(а): 13 ноя 2020, 22:07
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
А мне наоборот больше пользовательский блок понравился ,я так понял он сделан в новом редакторе ,супер!!!!! блок для дисплея.