Кириллица на hd44780 . Возможно ли?

Использование дисплеев и обсуждение пользовательских блоков к ним
Аватара пользователя
faramir777
Рядовой
Сообщения: 46
Зарегистрирован: 28.11.2015{, 14:59}
Репутация: 0
Откуда: с.Питерка

Кириллица на hd44780 . Возможно ли?

#41

Сообщение faramir777 » 25.01.2016{, 23:40}

Есть еще одна библиотека - WolfCrystal, только что ее попробовал, создал пользовательский блок и он успешно заработал. Эта библиотека хорошо кушает переменные. Только есть одна проблема, она работает только на Arduino IDE не выше 1.0.5
Можно ли как нибудь запустить эту либу на 1.6.3? Или кто нибудь знает как адаптировать библиотеки под новые версии IDE?

Arduino IDE 1.0.5  скачал тут
Вложения
WolfCrystal-COD.ubi
(26.88 КБ) 62 скачивания
WolfCrystal.rar
(12.01 КБ) 75 скачиваний
Последний раз редактировалось faramir777 26.01.2016{, 00:09}, всего редактировалось 1 раз.
E8400 4gb win10 64bit, pipo w4 win8 32bit

ssilver2007
Рядовой
Сообщения: 1
Зарегистрирован: 27.01.2016{, 13:38}
Репутация: 0
Откуда: Санкт-Петербург

Кириллица на hd44780 . Возможно ли?

#42

Сообщение ssilver2007 » 27.01.2016{, 13:46}

support писал(а):Вы понимаете в этом как раз и есть проблема данной библиотеки, сто она умеет по русски печатать только константу. Как я понял запись вида (L"Текст") создаёт какую то хитрую константу. Если передавать туда переменную, например (L textInput) будет ошибка.
Приведите пример программы, где такое происходит. Дело в том, что Arduino кодирует кириллицу двумя байтами, а не одним (как латиницу). Поэтому необходимо работать не с переменной char, а использовать тип wchar_t. Может в этом дело?

Аватара пользователя
faramir777
Рядовой
Сообщения: 46
Зарегистрирован: 28.11.2015{, 14:59}
Репутация: 0
Откуда: с.Питерка

Кириллица на hd44780 . Возможно ли?

#43

Сообщение faramir777 » 31.01.2016{, 17:45}

Сделал блок на СИ для вывода кириллических символов не используя сторонних библиотек.
Важно:
1. Умеет выводить только константу.
2. Не более 8 уникальных кириллических символов (обусловлено всего 8 свободными блоками в hd44780 для использования своих символов) которые предварительно нужно зарегистрировать в параметрах пользователя, остальные символы заменяются похожими латинскими.
3. Понимает только прописные буквы.

Особо не тестировал, может и еще какие нюансы имеются.
Для небольших проектов без "Меню" и изменяемого русского текста будет полезно.
Вложения
Rus_LCD_const-C.ubi
(27.32 КБ) 87 скачиваний
Последний раз редактировалось faramir777 31.01.2016{, 17:53}, всего редактировалось 1 раз.
E8400 4gb win10 64bit, pipo w4 win8 32bit

Аватара пользователя
slavas
Лейтенант
Сообщения: 595
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 1
Откуда: Санкт-Петербург

Кириллица на hd44780 . Возможно ли?

#44

Сообщение slavas » 03.02.2016{, 23:27}

faramir777, интересная штука. А развитие блока планируется?

Аватара пользователя
faramir777
Рядовой
Сообщения: 46
Зарегистрирован: 28.11.2015{, 14:59}
Репутация: 0
Откуда: с.Питерка

Кириллица на hd44780 . Возможно ли?

#45

Сообщение faramir777 » 04.02.2016{, 00:00}

slavas писал(а):А развитие блока планируется?
Я думаю дальше развивать этот блок нет смысла, 8 символов ограничивают.
Сейчас пытаюсь заставить работать библиотеку WolfCrystal на arduino IDE 1.6.3, а уже на основе ее и делать блок, тогда не будет ограничений по количеству кириллических символов а так же будет работать с переменными.
На arduino IDE 1.6.7 уже удалось запустить.
E8400 4gb win10 64bit, pipo w4 win8 32bit

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#46

Сообщение Noname » 04.02.2016{, 22:27}

faramir777 писал(а):ейчас пытаюсь заставить работать библиотеку WolfCrystal на arduino IDE 1.6.3, а уже на основе ее и делать блок, тогда не будет ограничений по количеству кириллических символов а так же будет работать с переменными.
не бросайте, нужное дело делаете..

Аватара пользователя
faramir777
Рядовой
Сообщения: 46
Зарегистрирован: 28.11.2015{, 14:59}
Репутация: 0
Откуда: с.Питерка

Кириллица на hd44780 . Возможно ли?

#47

Сообщение faramir777 » 05.02.2016{, 23:31}

Доработал пользовательский блок LCD 1602 на чипе HD44780 с возможностью вывода русских символов для дисплеев,  не поддерживающих кириллицу.
Нет ограничений по количеству кириллических символов
Умеет работать с переменными
Использует стандартную библиотеку LiquidCrystal
ВАЖНО:
1. Нет буквы Ё
2. Блок понимает только ПРОПИСНЫЕ буквы
3. В связи с ограниченным количеством свободных ячеек для
записи своих символов, пришлось много символов заменять похожими из  катаканы (а они местами корявы Изображение ), поэтому для лучшей читаемости советую не использовать буквы : Ц, Ч, Ш, Щ, Э.
Вложения
Rus_LCD_v2-CODE.ubi
(44.12 КБ) 93 скачивания
Последний раз редактировалось faramir777 05.02.2016{, 23:49}, всего редактировалось 1 раз.
E8400 4gb win10 64bit, pipo w4 win8 32bit

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#48

Сообщение Noname » 07.02.2016{, 00:20}

faramir777 писал(а):Доработал пользовательский блок LCD 1602
Спасибо огромное! все работает, все ок.

Аватара пользователя
faramir777
Рядовой
Сообщения: 46
Зарегистрирован: 28.11.2015{, 14:59}
Репутация: 0
Откуда: с.Питерка

Кириллица на hd44780 . Возможно ли?

#49

Сообщение faramir777 » 07.02.2016{, 00:40}

Оказалось что блок не совсем корректно работает, возникают проблемы при использовании нескольких блоков на одной строке, так как я использовал пробелы вместо очистки экрана.
Я не силен в Си, подскажите как очищать экран только при изменении переменной, в данном случае char charVar[50]
Последний раз редактировалось faramir777 07.02.2016{, 00:44}, всего редактировалось 1 раз.
E8400 4gb win10 64bit, pipo w4 win8 32bit

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#50

Сообщение Noname » 12.02.2016{, 19:32}

faramir777 писал(а):возникают проблемы при использовании нескольких блоков на одной строке
у меня в программах всегда только два блока дисплея- для первой и второй строк.а вывод на них через переменные с разрешением записи в определенный момент, поменял на ваши блоки и перевел значения переменных на русский,  проблем не возникало.

возможно это не правильно, но когда мне нужно очистить строку(сделать её пустой), я ввожу в нее переменную полную пробелов.

Добавлено (07.02.2016, 23:42)
---------------------------------------------
добавьте пожалуйста, к блоку вход разрешения записи, как на стандартном блоке дисплея в программе.

Добавлено (12.02.2016, 19:32)
---------------------------------------------
faramir777 писал(а):Оказалось что блок не совсем корректно работает, возникают проблемы при использовании нескольких блоков на одной строке,
кстати да, не корректно. Печаль..
не могу мигать строкой... а очень хотелось...

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#51

Сообщение Олег » 12.02.2016{, 20:38}

Если интересно, то могу предложить вариант как использовать кириллические (или свои) символы, но только 8 штук и чуть-чуть придется ручками подрабатывать.

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#52

Сообщение Noname » 12.02.2016{, 23:44}

Конечно же интересно))
Только распишите подробнее.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#53

Сообщение Олег » 13.02.2016{, 01:18}

Примерно так, в блоке пользователя создаются свои элементы:
_-CODE-.ubi
(9.47 КБ) 193 скачивания
Мне для одного проекта этих букв хватило. Самое неудобство при вставке символов в слова. Те буквы которые одинаково выглядят в кириллице и латинице печатаются на латинице (например вместо русской В печатаем латинскую В).
А вот вместо символа которого нет в латинице, но он создан в нашем блоке пишем его код. Например слово ПРОГРАММА будет выглядеть так: \1PO\3PAMMA. Вместо П мы подставили \1, а вместо Г подставили \3.
Сам блок дисплея мы используем оригинальный и в той плате где дисплей появляется первый раз, мы подставляем перед ним этот пользовательский блок. Он подставляется только один раз во всем проекте. Если вы физически используете два дисплея в проекте, то в Setting section надо все прописывать и для второго дисплея.
Выглядит в проекте это примерно так:
1135290.png
Буквы лучше использовать прописные, в строчных не все буквы красиво смотрятся, например м и m.
Ну и надо подумать какие слова лучше использовать, например вместо ВКЛ и ВЫКЛ можно использовать СТАРТ и СТОП, так как у меня П используется и в других словах, а Ы нужно было только в ВЫКЛ.
Ну а если нужен какой-то свой символ, то с помощью этого блока его очень удобно сделать, например на этом изображении под кодом \2 у меня был значок дельта.
Вложения
1741165.jpg
Последний раз редактировалось Олег 13.02.2016{, 11:11}, всего редактировалось 1 раз.

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#54

Сообщение Noname » 13.02.2016{, 21:44}

Noname писал(а):не могу мигать строкой
могу уже.

Добавлено (13.02.2016, 21:44)
---------------------------------------------
Олег писал(а):Примерно так, в блоке пользователя
 Спасибо огромное, отличный блок!))
возможно я что -то не допонял, но в описании блока у Вас написано,что можно использовать восемь символов, присвоив им код от 0 до 7. А в самом блоке Вы использовали семь, от 1 до 7. Так вот я никак не могу добавить восьмой - вылетает ошибка компиляции. Добавьте восьмой, если возможно.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#55

Сообщение Олег » 14.02.2016{, 00:33}

К сожалению восьмой не будет работать, так-как нулевой символ используется в Си как маркер конца строки и таким образом его не ввести. Когда это пишется в скетче, то этот символ выводится командой lcd.write(0), но как это реализовать в FLProg не представляю. Может кто, тот кто знает Си подскажет.
 А ошибки компиляции быть не должно, что-то вы не правильно вставляли.

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#56

Сообщение Noname » 14.02.2016{, 00:41}

Олег писал(а):К сожалению восьмой не будет работать
ну нет, так нет, семь тоже хорошо))

Добавлено (14.02.2016, 00:41)
---------------------------------------------
Олег писал(а):А ошибки компиляции быть не должно, что-то вы не правильно вставляли.
ошибка именно если пытаться добавить в блок  восьмой символ.
с семью работают все буквы и эмблемки , а вот восьмой ни как. но проблему эту Вы объяснили.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#57

Сообщение Олег » 14.02.2016{, 01:13}

Проблема была в том, что символ не отображается, но блок с восемью символами при этом компилируется нормально.
 Кстати, я нашел способ вставить восьмой символ вручную. 
Для этого в проекте пишем \0. После этого в скомпилированном проекте находим строчку _lcd1.print((String("\0"))); и меняем ее на  _lcd1.write((byte)0);
Если проект большой, или этот символ использовался много раз, то проще это сделать при помощи Notepad++. Копируем код из IDE туда и выполняем "Заменить на" и код заменится во всем проекте, потом копируем обратно и загружаем в контроллер.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#58

Сообщение Олег » 14.02.2016{, 01:30}

Изменил описание в блоке и добавил восьмой символ в виде буквы Ю.
Вложения
1078064.ubi
(10.93 КБ) 100 скачиваний
Последний раз редактировалось Олег 14.02.2016{, 17:53}, всего редактировалось 1 раз.

Аватара пользователя
Noname
Сержант
Сообщения: 120
Зарегистрирован: 06.01.2016{, 21:53}
Репутация: 1
Откуда: Москва
Имя: Анатолий

Кириллица на hd44780 . Возможно ли?

#59

Сообщение Noname » 14.02.2016{, 14:38}

Олег писал(а):...и добавил восьмой символ
Не могу вывести восьмой символ, как понял он уже "зашит" в блок в виде "Ю". стирает всю строку и выводит 0.
В принципе, обхожусь семью символами, но если будете делать блок еще, есть просьба "зашить" букву "И" , т.к. она чаще употребима.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Кириллица на hd44780 . Возможно ли?

#60

Сообщение Олег » 14.02.2016{, 14:59}

Опишите пожалуйста что вы делаете, что-то у вас не так, все должно выводится. Вы можете сами менять символы как вам заблагорассудится, в зависимости от проекта, в этом и смысл блока.
 Может я что-то не так написал в описании, когда придем к консенсусу, тогда поправлю и описание, если дело в этом.

Ответить

Вернуться в «Дисплеи и индикаторы»