LCD 1602 I2C вывод кирилицы
LCD 1602 I2C вывод кирилицы
Доброго времени суток, уважаемые форумчане! Вознамерился сваять блок для вывода кириллицы на 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("Мои символы:");
}
В 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("Мои символы:");
}
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
Дык что же ты [ref]German[/ref], на пальцах то объясняешь?
По этим объяснениям, диагноз такой - Это может быть все что угодно.
Прикрепи пример рабочий, на основе которого хочешь блок сделать и проект который ошибки выдает.
Вот тогда и поговорим.
Отправлено спустя 4 часа 25 минут 41 секунду:
Да, к стати, [ref]German[/ref], Вы проверяли как ваш блок компилируется в IDE?
В описании "примерчика" сказано:
Значит #define _LCD_TYPE 1 съехало ниже #include <LCD_1602_RUS_ALL.h>
По этим объяснениям, диагноз такой - Это может быть все что угодно.
Прикрепи пример рабочий, на основе которого хочешь блок сделать и проект который ошибки выдает.
Вот тогда и поговорим.
Отправлено спустя 4 часа 25 минут 41 секунду:
Да, к стати, [ref]German[/ref], Вы проверяли как ваш блок компилируется в IDE?
В описании "примерчика" сказано:
Это пишет IDE?German писал(а): 10 ноя 2020, 13:59 //Тип подключения дисплея: 1 - по шине I2C, 2 - десятиконтактное. Обязательно указывать ДО подключения библиотеки
//Если этого не сделать, при компиляции возникнет ошибка: "LCD type connect has not been declared"
Значит #define _LCD_TYPE 1 съехало ниже #include <LCD_1602_RUS_ALL.h>
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
Итак!
Тестовая версия русифицирующего блока дисплея.
(Для дисплеев не имеющих на борту кириллицы!)
Почти полный аналог штатного блока. Пользоваться абсолютно так же.
Поддержка только FLProg 7.0 и выше.
. .
На борту имеются все прописные и заглавные кириллицы а так же украинские буквы. + знак градуса
Делать ничего не нужно, просто подаете на вход русский текст.
НО ПОМНИТЕ - РОВНО В 12 КАРЕТА ПРЕВРАТИТЬСЯ В ТЫКВУ!
А если серьезно, ограничение в 8 уникальных символов, выводимых одновременно на дисплей, останется по любому.
Еще раз повторюсь. 8 УНИКАЛЬНЫХ символов
Повторения и совпадение по начертанию с латиницей не в счёт! (если к примеру буква "Ж" повторяется 10 раз, то это всего один уникальный символ. Можно ещё 7.
Речь идет о таких буквах как Б, б, Г, г, Д, д, Ж, ж, З, з... И так далее.
Такие буквы как А, В, Е, К..... и т.д. не считаются.
Одновременный вывод повторяющихся символов - не ограничен!
Вывод латиницы - не ограничен!
Тестировалось только подключение по I2C
4 битное подключение не тестировал пока.
У кого есть время и возможность протестируйте 4 битное подключение (без I2C адаптера) и отпишитесь.
Недостатки:
- Блок занимает довольно много места в памяти. Около 3,3 кБ (10% Arduino NANO),
но это только первый экземпляр. Все последующие всего по 30 байт.
- Не поддерживается более одного дисплея.
- Не совместим с одновременным использованием штатного блока дисплея (это пока).
Пробуйте, тестируйте, отписывайтесь.
Тестовая версия русифицирующего блока дисплея.
(Для дисплеев не имеющих на борту кириллицы!)
Почти полный аналог штатного блока. Пользоваться абсолютно так же.
Поддержка только FLProg 7.0 и выше.
. .
На борту имеются все прописные и заглавные кириллицы а так же украинские буквы. + знак градуса
Делать ничего не нужно, просто подаете на вход русский текст.
НО ПОМНИТЕ - РОВНО В 12 КАРЕТА ПРЕВРАТИТЬСЯ В ТЫКВУ!

А если серьезно, ограничение в 8 уникальных символов, выводимых одновременно на дисплей, останется по любому.
Еще раз повторюсь. 8 УНИКАЛЬНЫХ символов
Повторения и совпадение по начертанию с латиницей не в счёт! (если к примеру буква "Ж" повторяется 10 раз, то это всего один уникальный символ. Можно ещё 7.
Речь идет о таких буквах как Б, б, Г, г, Д, д, Ж, ж, З, з... И так далее.
Такие буквы как А, В, Е, К..... и т.д. не считаются.
Одновременный вывод повторяющихся символов - не ограничен!
Вывод латиницы - не ограничен!
Тестировалось только подключение по I2C
4 битное подключение не тестировал пока.
У кого есть время и возможность протестируйте 4 битное подключение (без I2C адаптера) и отпишитесь.
Недостатки:
- Блок занимает довольно много места в памяти. Около 3,3 кБ (10% Arduino NANO),
но это только первый экземпляр. Все последующие всего по 30 байт.
- Не поддерживается более одного дисплея.
- Не совместим с одновременным использованием штатного блока дисплея (это пока).

Пробуйте, тестируйте, отписывайтесь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 13 ноя 2020, 08:31, всего редактировалось 2 раза.
-
- Лейтенант
- Сообщения: 418
- Зарегистрирован: 13 апр 2020, 18:22
- Имя: Антон
- Поблагодарили: 3 раза
LCD 1602 I2C вывод кирилицы
[ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
Кароч. Претензии не ко мне. Я этой темы не создавал.Ardudue писал(а): 11 ноя 2020, 20:14 [ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
Последний раз редактировалось Dryundel 11 ноя 2020, 21:42, всего редактировалось 1 раз.
LCD 1602 I2C вывод кирилицы
Блок обязательно протестирую, но не могу скачать Семёрку, там какие-то проблемы с доменом...
P.S. Огромная благодарность Андрею за помощь!
P.S. Огромная благодарность Андрею за помощь!
LCD 1602 I2C вывод кирилицы
Блок отлично работает! Тестировал по I2C на портативной версии. Занимает 23% Arduino NANO.
Вообще, и это вопрос принципиальный, нужно вставить этот блок в семёрку, в качестве стандартного.
Если необходимо, составить петицию, подписи и т.д. и выйти на Сергея Глушенко.
ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....
Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.
Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Я знаю, очень даже многие, скажут:
- "Это всё фигня, я уже так привык, мне и так хорошо", и я такой крутой, у меня всё на английском.
Парень! Скоро у тебя всё будет на китайском! Ты и так уже, на коленях, и скоро примешь другую позу, догадаешься какую...
ДА Я ЛЮБЛЮ СВОЮ СТРАНУ, СВОЙ НАРОД И СВОЙ РОДНОЙ ЯЗЫК!!!
P.S. Большое спасибо Андрею за созданный блок. Я с удовольствием включился бы в работу
по усовершенствованию блока, но мой уровень в программировании слишком мал. Будем учиться.
P.S.2. А Семёрочка - хороша!!! Сергею Глушенко респект и уважуха!
Щас пощёлкаю по рекламным ссылкам, ребятам надо помочь!
Вообще, и это вопрос принципиальный, нужно вставить этот блок в семёрку, в качестве стандартного.
Если необходимо, составить петицию, подписи и т.д. и выйти на Сергея Глушенко.
ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....
Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.
Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Я знаю, очень даже многие, скажут:
- "Это всё фигня, я уже так привык, мне и так хорошо", и я такой крутой, у меня всё на английском.
Парень! Скоро у тебя всё будет на китайском! Ты и так уже, на коленях, и скоро примешь другую позу, догадаешься какую...
ДА Я ЛЮБЛЮ СВОЮ СТРАНУ, СВОЙ НАРОД И СВОЙ РОДНОЙ ЯЗЫК!!!
P.S. Большое спасибо Андрею за созданный блок. Я с удовольствием включился бы в работу
по усовершенствованию блока, но мой уровень в программировании слишком мал. Будем учиться.
P.S.2. А Семёрочка - хороша!!! Сергею Глушенко респект и уважуха!
Щас пощёлкаю по рекламным ссылкам, ребятам надо помочь!
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
.
Тестовая версия русифицирующего блока дисплея v0.2.
(Для дисплеев не имеющих на борту кириллицы!)
Добавил параметр "Мигающий символ"
При активации данного параметра у блока появляется вход " # " В этом случае перед значением которое выводит блок на дисплей будет добавлен один пустой знак для вывода мигающего символа и соответственно строка сдвигается вправо и для вывода значения потребуется на один знак больше.
При подаче на вход " # " высокого уровня выбранный символ начнет мигать.
Данный мигающий символ не грузит процессор, а так же не мигают строки.
Надеюсь это многим поможет при организации меню.
Выглядит это таким образом:
. . . .
Dryundel писал(а): 13 ноя 2020, 12:48 < Следующий пост >
Добавлена возможность выравнивания "По центру" и "СПРАВА" !
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 13 ноя 2020, 17:19, всего редактировалось 4 раза.
-
- Лейтенант
- Сообщения: 418
- Зарегистрирован: 13 апр 2020, 18:22
- Имя: Антон
- Поблагодарили: 3 раза
LCD 1602 I2C вывод кирилицы
Ваша проблема в знаниях.German писал(а): 12 ноя 2020, 20:52 ПОЧЕМУ НАШИ ЛЮДИ ДОЛЖНЫ УНИЖАТЬСЯ ВЫВОДЯ НА ДИСПЛЕЙ ПЕРЛЫ ТИПА: ZAGRUZKA, VXOD, VIXOD, TEMPERATURA....
Китаец или американец не купят дисплей без своего родного языка, потому что они уважают себя.
Китайские свол... друзья с Али, продают дисплеи с поддержкой кириллицы в три раза дороже обычных, они знают: бедный русский иван одуревший от нищеты, купит подешевле, наступив на свою гордость...
Китайцы просто прошивают чипы дисплея на какие хотят языки и торгуют ими.
Просто распотрошите дисплей как это сделали китайцы и шейте в чип символы какие хотите.
Правда они еще и свои чипы сделали ST7066U и ST7065S и клепают.
Давайте построим завод по выпуску чипов и дисплеев, и вместо гадкой цены $1.2 на наши родненькие цену установим 1,2Р.
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
.
Тестовая версия русифицирующего блока дисплея v0.3.
(Для дисплеев не имеющих на борту кириллицы!)
Добавлена возможность выравнивания "По центру" и "СПРАВА" !
. .
Внимание!
При установке выравнивания "По центру" или "Справа", обязательно укажите
раскладку клавиатуры RU или EN (Параметр "Раскладка клавиатуры").
В случае неправильно выставленного параметра "Раскладка клавиатуры",
или при использовании смешанного ввода, адекватность выравнивания не гарантирована.
Тестируем: Отправлено спустя 4 часа 4 минуты 10 секунд:
PS все служебные символы типа + - / * = > < и т.п. , а так же цифры "относятся" к латинице, не смотря на то, что были введены с русской раскладки. Этот момент обязательно надо учитывать при использовании выравнивания.
Попросту говоря, сложность в том, что все русские буквы являются двух-байтовыми, а все остальное одо-байтовое.
.
Dryundel писал(а): 16 ноя 2020, 12:54 Следующий пост
Добавлен параметр "Мигающее значение"
Добавлен вспомогательный блок управления подсветкой по I2C
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 16 ноя 2020, 13:05, всего редактировалось 2 раза.
LCD 1602 I2C вывод кирилицы
Третья версия работает. Мигающий символ, очень удобен. Я его делал в блоке обработчика кнопок на генераторе. Выравнивание,то же работает. Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Последний раз редактировалось German 01 дек 2020, 20:29, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 418
- Зарегистрирован: 13 апр 2020, 18:22
- Имя: Антон
- Поблагодарили: 3 раза
LCD 1602 I2C вывод кирилицы
не компилируется - 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.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 152 раза
LCD 1602 I2C вывод кирилицы
Библиотека и блоки 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 руб. в подобных случаях не критична.
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
Ничего не поделаешь, за удобство приходится платить. Библиотека обеспечивающая русификацию довольно увесистая штука.German писал(а): 13 ноя 2020, 18:13 Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Спасибо за информаци. С STM-ками пока не разбирался. Блок в первую очередь делался для AVR. Думаю на следующем этапе, когда реализуются все задумки, адаптируем и под STM.
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
[ref]ecoins[/ref], Я конечно Вас очень уважаю за ваш неоценимый вклад в разработки библиотек для FLProg.ecoins писал(а): 13 ноя 2020, 18:51 Библиотека и блоки LCD от ecoins работает и на STM32.
Но идеология блоков иная. Но и возможности гораздо большие, и проекты "не тормозят".....
Но зачем же так? Эта тема не для обсуждения достоинств Ваших библиотек. Хотя в их безупречности никто не сомневается.
А вот так мелко гадить в не профильной ветке, не просто не кашерно, а даже пошло с Вашей стороны. Не ожидал.
Ну так добавьте, ни кто Вам не мешает. А заодно и сделайте удобный для пользования блок, с нормальным описанием, который можно без танцев с бубном применить в проекте. И такой, что бы он работал с любой версией вашей библиотеки, а не только с той которая когда то, где то была рядом. И еще выложите его так, что бы можно было легко найти при надобности а не перекапывать тысячу постов попутного хлама.
В противном случае грош цена блоку который крут только потому, что работает чуть быстрее. Да 90% пользователей на этом форуме не требуется ваша скорость. А остальные, в том числе и я, с удовольствием поучатся на ваших разработках и спасибо скажем. Не сомневайтесь.
Развели свалку в своей ветке, теперь со своим баяном к другим лезете.
Последний раз редактировалось Dryundel 14 ноя 2020, 08:28, всего редактировалось 2 раза.
LCD 1602 I2C вывод кирилицы
При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
- Dryundel
- Полковник
- Сообщения: 2420
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
LCD 1602 I2C вывод кирилицы
Вы хотели бы что бы интерфейс был такой же как у штатных блоков? Похвальное желание.German писал(а): 13 ноя 2020, 22:07 При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
....
хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.

Я бы тоже этого хотел. Но этого не предусмотрено редактором ПБ. Имеем то что имеем.
Вас сбивает слово "значение"? С этим тоже ничего не могу поделать. Его не убрать, выводится автоматом. Задам вопрос Сергею, может уберет.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
LCD 1602 I2C вывод кирилицы
А мне наоборот больше пользовательский блок понравился ,я так понял он сделан в новом редакторе ,супер!!!!! блок для дисплея.German писал(а): 13 ноя 2020, 22:07 При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
Кто сейчас на конференции
Сейчас этот форум просматривают: Amazon [Bot] и 3 гостя