Страница 3 из 11

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

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

Arduino IDE 1.0.5  скачал тут

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

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

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

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

Особо не тестировал, может и еще какие нюансы имеются.
Для небольших проектов без "Меню" и изменяемого русского текста будет полезно.

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

Добавлено: 03.02.2016{, 23:27}
slavas
faramir777, интересная штука. А развитие блока планируется?

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

Добавлено: 04.02.2016{, 00:00}
faramir777
slavas писал(а):А развитие блока планируется?
Я думаю дальше развивать этот блок нет смысла, 8 символов ограничивают.
Сейчас пытаюсь заставить работать библиотеку WolfCrystal на arduino IDE 1.6.3, а уже на основе ее и делать блок, тогда не будет ограничений по количеству кириллических символов а так же будет работать с переменными.
На arduino IDE 1.6.7 уже удалось запустить.

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

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

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

Добавлено: 05.02.2016{, 23:31}
faramir777
Доработал пользовательский блок LCD 1602 на чипе HD44780 с возможностью вывода русских символов для дисплеев,  не поддерживающих кириллицу.
Нет ограничений по количеству кириллических символов
Умеет работать с переменными
Использует стандартную библиотеку LiquidCrystal
ВАЖНО:
1. Нет буквы Ё
2. Блок понимает только ПРОПИСНЫЕ буквы
3. В связи с ограниченным количеством свободных ячеек для
записи своих символов, пришлось много символов заменять похожими из  катаканы (а они местами корявы Изображение ), поэтому для лучшей читаемости советую не использовать буквы : Ц, Ч, Ш, Щ, Э.

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

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

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

Добавлено: 07.02.2016{, 00:40}
faramir777
Оказалось что блок не совсем корректно работает, возникают проблемы при использовании нескольких блоков на одной строке, так как я использовал пробелы вместо очистки экрана.
Я не силен в Си, подскажите как очищать экран только при изменении переменной, в данном случае char charVar[50]

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

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

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

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

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

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

Добавлено: 12.02.2016{, 20:38}
Олег
Если интересно, то могу предложить вариант как использовать кириллические (или свои) символы, но только 8 штук и чуть-чуть придется ручками подрабатывать.

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

Добавлено: 12.02.2016{, 23:44}
Noname
Конечно же интересно))
Только распишите подробнее.

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

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

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

Добавлено: 13.02.2016{, 21:44}
Noname
Noname писал(а):не могу мигать строкой
могу уже.

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

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

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

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

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

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

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

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

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

Добавлено: 14.02.2016{, 01:30}
Олег
Изменил описание в блоке и добавил восьмой символ в виде буквы Ю.

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

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

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

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