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

Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01 окт 2020, 20:27
Имя: Герман

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

Сообщение 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("Мои символы:");


}
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение 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>
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение Dryundel »

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

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

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

А если серьезно, ограничение в 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 < Следующий пост >
Добавил параметр "Мигающий символ"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 13 ноя 2020, 08:31, всего редактировалось 2 раза.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

[ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение Dryundel »

Ardudue писал(а): 11 ноя 2020, 20:14 [ref]Dryundel[/ref], надо еще с десяток тем сделать по русификации LCD1602.
Кароч. Претензии не ко мне. Я этой темы не создавал.
Последний раз редактировалось Dryundel 11 ноя 2020, 21:42, всего редактировалось 1 раз.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

так я же выше автору темы далл ссылку на уже существующую тему...
Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01 окт 2020, 20:27
Имя: Герман

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

Сообщение German »

Блок обязательно протестирую, но не могу скачать Семёрку, там какие-то проблемы с доменом...
P.S. Огромная благодарность Андрею за помощь!
Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01 окт 2020, 20:27
Имя: Герман

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

Сообщение German »

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

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

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

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

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

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

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

Щас пощёлкаю по рекламным ссылкам, ребятам надо помочь!
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение 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 < Следующий пост >
Добавлена возможность выравнивания "По центру" и "СПРАВА" !
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 13 ноя 2020, 17:19, всего редактировалось 4 раза.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение Ardudue »

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 вывод кирилицы

Сообщение 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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 16 ноя 2020, 13:05, всего редактировалось 2 раза.
Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01 окт 2020, 20:27
Имя: Герман

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

Сообщение German »

Третья версия работает. Мигающий символ, очень удобен. Я его делал в блоке обработчика кнопок на генераторе. Выравнивание,то же работает. Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Последний раз редактировалось German 01 дек 2020, 20:29, всего редактировалось 1 раз.
Ardudue
Лейтенант
Сообщения: 418
Зарегистрирован: 13 апр 2020, 18:22
Имя: Антон
Поблагодарили: 3 раза

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

Сообщение 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.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

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

Сообщение 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 руб. в подобных случаях не критична.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение Dryundel »

German писал(а): 13 ноя 2020, 18:13 Вот, только, блок кушает много: 24%. Работать с проектами на русифицированном дисплее стало ОЧЕНЬ приятно и удобно!
Ничего не поделаешь, за удобство приходится платить. Библиотека обеспечивающая русификацию довольно увесистая штука.
Ardudue писал(а): 13 ноя 2020, 18:28 Ошибка компиляции для платы Generic STM32F103C series.
Спасибо за информаци. С STM-ками пока не разбирался. Блок в первую очередь делался для AVR. Думаю на следующем этапе, когда реализуются все задумки, адаптируем и под STM.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение Dryundel »

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

Развели свалку в своей ветке, теперь со своим баяном к другим лезете.
Последний раз редактировалось Dryundel 14 ноя 2020, 08:28, всего редактировалось 2 раза.
Аватара пользователя
German
Рядовой
Сообщения: 8
Зарегистрирован: 01 окт 2020, 20:27
Имя: Герман

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

Сообщение German »

При выборе столбцов и строк в блоке не много сбивает количество информации: "Строка значение 1", "Столбец значение 2".
Мне кажется, здесь, стоит позаимствовать представление из стандартного блока: "Строка - список", "Столбец -список".
Человек, который только начал знакомство с FLprog, скорее всего будет путаться с настройками. Я сам несколько раз забывал выставить нужный столбец или строку и FL выдавал ошибку.
Я не критикую, просто, хочется улучшить блок и сделать его интерфейс интуитивным и дружественным.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 21 раз

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

Сообщение Dryundel »

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

Вас сбивает слово "значение"? С этим тоже ничего не могу поделать. Его не убрать, выводится автоматом. Задам вопрос Сергею, может уберет.
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

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

Сообщение vovka1973 »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: Amazon [Bot] и 3 гостя