Как русифицировать lcd 1602
rfid система. LCD дисплей 1602. Русификация
Продолжаем тему RFID.
Сегодня мы подключим дисплей LCD 1602 и русифицируем его. Ведь мы же не хотим выводить на экран кракозябры или буржуйский текст. Нам милее наш, Великий и Могучий. Как завещал сами знаете кто.
А мы возвращаемся к нашему проекту. Я собрал всё на макетной плате. Подключение немного отличается от того что я давал в прошлом видео.
Там были задействованы пины 1 и 2. Это пины отвечают за шину I2C которая нам сегодня пригодиться. Поэтому переставим их на пины 2 и 3. Схема будет дальше в видео.
А к пинам 1 и 2 подключим наш LCD дисплей.
Забыл сказать. Дисплей должен уметь подключаться к шине I2C, то есть из него должны выходить всего 4 контакта.
Теперь давайте рассмотрим скетч.
Теперь каждой букве что мы будем выводить присвоим свой номер. Вот эти цифры мы и будем вставлять в код.
Звучит немножко непонятно, но всё очень просто и вы скоро привыкнете.
Текст я вывел только для того что бы показать как работать с русским шрифтом. И не забудьте посмотреть видео про дисплей, не пожалеете.
Теперь давайте выведем на экран дисплея номер карты UID. Для этого объединим этот скетч с предыдущим.
Подносим карту и видим на дисплее её номер. Вывод происходит практически моментально. А вот когда мы дойдём до получения номера по WIFI, то там будет небольшая задержка. На дисплее всё будет так же быстро, а на телефон будет приходить с опозданием. Ну это я так. Забежал вперёд. Так что ничего сложного в выводе номера карты на экран нет. В следующих видео мы ещё больше добавим устройств в наш проект.
Так, что не забудьте подписаться и нажать колокольчик, так вы не пропустите новое видео. Лайки и комментарии приветствуются.
Теперь рассмотрим схему подключения. Здесь больше деталей чем нам нужно для этого урока. Это я нарисовал для следующих видео.
В подключении не должно возникнуть ни каких проблем. Главное не забыть, что модуль RFID питается от 3.3 вольт, а дисплей от 5 вольт. Я подключил его к контакту VIN платы ESP. этот вывод выдаст такое напряжение которое вы подали на питание NodeMCU. Я питаю плату от USB соответственно это 5 вольт. И на выходе VIN будет тоже 5 вольт.
Красным квадратам я обвёл те выводы которые мы используем. Так, что у нас осталось не так уж и много свободных пинов. Тут сразу вспоминается Ардуино с его огромным количеством выводов. А аналоговых входов в ESP вообще всего 1.
Ну вроде всё работает и можно переходить к усложнению проекта и написанию нового скетча и монтажа нового видеоурока. А вот когда он появится зависит от вашей активности. Чем больше, тем быстрее.
Если вы посмотрите ещё одно видео, А я об этом обязательно узнаю, то ваша карма увеличится и у вас сразу станут получаться самые сложные Ардуино проекты.
Удачи вам.
И с Наступающим Новым 2021 годом.
Arduino.ru
LCD 1602 и русские символы
имеется LCD экран LCM1602C и Arduino Uno
хотелось бы, чтобы выводилась кириллица, но ничего не выходит
я скаивал соответсвующую библиотеку LiquidCrystalRus, но на экране всё равно русские символы не отображаются
этот код тоже не помогает
1. Скорее всего так и есть. Приобретал на ebay 4 экрана в разное время. Там в-принципе нет кириллицы.
Там ведь всего-то 32 символа выводится.
2. Все русские буквы, имеющиеся в латинском алфавите, отображать латиницей (в верхнем регистре их поболе наберется).
3. Оптимизировать русские фразы так, чтобы в них встречалось как можно меньше кирилличных символов,
не имеющих соответствия в латинице.
4. Генерацию пресловутых 8 символов производить не в начале программы, а перед каждой сменой текстовой информации на дисплее.
5. Извращения ради: создать структурку, в которой будет храниться информация о сгенерированных в данный момент символах и по мере надобности переопределять не все 8 символов, а 1-2-3 новых, которые потребуются при следующем выводе, соответственно затирая информацию об 1-2-3 самых ненужных символах. Какие самые ненужные? Тут вам или таблица частот использования кирилличных букв в помощь (например, http://www.statsoft.ru/home/portal/exchange/textanalysis.htm), или анализ частотный анализ строк, используемых непосредственно в программе.
2. Все русские буквы, имеющиеся в латинском алфавите, отображать латиницей (в верхнем регистре их поболе наберется).
3. Оптимизировать русские фразы так, чтобы в них встречалось как можно меньше кирилличных символов,
не имеющих соответствия в латинице.
4. Генерацию пресловутых 8 символов производить не в начале программы, а перед каждой сменой текстовой информации на дисплее.
Если поэмы на экран не выводить то это ограничение вовсе не ограничение, хотя это больше применимо к LCD2004.
Для наглядности прилагаю пример (кусок программы для аппарата по продаже и наливу воды), в котором уже есть почти все «чисто русские» символы в верхнем регистре
Русификация для дисплеев LCD 1602 с шиной I2C:
Для обычных дисплеев:
Для обычных дисплеев:
Господа! Помогите чайнику разобраться.
Пытаюсь заставить дисплей 16/2 печатать русскими буквами.
Скачал 4 разные библиотеки, но при попытке компиляции примеров из этих библиотек выскакивают ошибки, суть которых я не могу понять, а при запуске библиотеки из вышеуказанной ссылки вылетает ещё и ошибка винды (ld.exe обнаружена ошибка. Приложение будет закрыто. )
На других скетчах вылезает вот это:
Arduino: 1.6.7 (Windows XP), Плата:»Arduino/Genuino Uno»
In file included from C:\Documents and Settings\Серёга\Мои документы\Arduino\libraries\LiquidCrystalRus\examples\HelloWorldRus\HelloWorldRus.pde:39:0:
C:\Documents and Settings\Серёга\Мои документы\Arduino\libraries\LiquidCrystalRus/LiquidCrystalRus.h:87:16: error: conflicting return type specified for ‘virtual void LiquidCrystalRus::write(uint8_t)’
virtual void write(uint8_t);
In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:224,
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Print.h:48:20: error: overriding ‘virtual size_t Print::write(uint8_t)’
virtual size_t write(uint8_t) = 0;
exit status 1
Ошибка компиляции.
Это сообщение будет содержать больше информации чем
«Отображать вывод во время компиляции»
включено в Файл > Настройки
Добавление своих символов на дисплее 1602 (русификация)
На просторах интернета очень много информации о работе с символьным дисплеем 1602. Может профессиональным программистам не составляет труда по этим заумным описаниям на устройства сразу начать использовать их во всех возможных режимах. Но в моем случае я столкнулся с жестким непониманием принципа добавления своих символов в этот дисплей (в том числе русификация дисплея 1602). Промучившись несколько дней и экспериментируя много много раз, я все-таки добился своего. При этом отметил несколько основных моментов, непонимание которых как раз мешали сразу решить свою задачу читая только инструкции. Может после прочтения данного блога кто то скажет: да это все итак в инструкции написано! Зачем еще раз это повторять!?
Но я вот, читая инструкции, этого не смог понять. Поэтому хочу поделиться своими умозаключениями по поводу данного дисплея. Может кому нибудь это поможет. Итак, поехали:
Первое: Внутри каждого дисплея 1602 есть таблица соответствия (рис 1).
По рис 2 можно увидеть что значения ячеек с адреса 16 до 127 соответствует стандартной кодировке ASCII.
А вот где-то после 157 до 255 идут какие то иероглифы. В алиэкспресс продаются дисплеи, в которых в таблице от 157 до 255 сразу зашиты русские символы. (Рис 3)
Такие дисплеи уже без прошивки будут выдавать русские буквы. Поэтому, если хотите купить русифицированный дисплей смотрите таблицу соответствия продаваемого дисплея.
Второе: Про инициализацию дисплея говорить не буду, а скажу сразу про отправку символов. Первым делом устанавливаем курсор в том месте дисплея где хотим печатать и отправляем нужный нам символ. Например отправляем символ «W».
И можно сказать, что не только выводит, а связывает эту ячейку дисплея с данной ячейкой таблицы соответствия. Почему связывает? Потому что если в ходе работы мы изменим ячейку таблицы соответствия, которая выведена на дисплей, то выведенный символ тоже измениться.
После этой команды, применяя ту же команду, что и отправка обычных букв на печать отправляешь 8 байт (8 букв) на дисплей. Все эти 8 букв будут создавать рисунок твоего добавляемого символа (1 символа).
После 8 буквы можно установить курсор на необходимое место на дисплее и вывести созданное изображение на дисплей. Делается той же команду, что и отправка обычных букв на печать, только вместо (‘W’) пишешь а двоичном виде адрес ячейки в таблице соответствия куда ты запихнул новый символ (0b00000010).
На этом все. Надеюсь кому нибудь поможет данная статья. Всем удачи!



Как русифицировать lcd 1602
Есть ли возможность прошить в такой индикатор русские буквы? И если да то как это сделать?
_________________
Малое знание опасно, впрочем как и большое.

TripleKill ![]() | |||
Карма: 4 |
| ||
![]() | |||
Doc ![]() | ||||
Зарегистрирован: Пт янв 06, 2006 12:13:45 |
| |||
![]() | ||||
TripleKill ![]() | |||
Карма: 4 |
| ||
![]() | |||
Doc ![]() | ||||
Зарегистрирован: Пт янв 06, 2006 12:13:45 |
| |||
![]() | ||||
Bear2011 ![]() | ||||
Карма: 32 | ||||
![]() | ||||
urry ![]() | ||||
Карма: 22 | ||||
![]() | ||||
TripleKill ![]() | |||
Карма: 4 |
| ||
![]() | |||








