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

Общие сведения

Китайские производители модулей LCD1602A v.2.0, программируют английский алфавит в памяти модуля, включая цифры и еще кучу символом (все символы можно посмотреть в мануале). Если необходимого символа нет, можно нарисовать собственный, но не более 8 шт., то есть мы можем одновременно отобразить не более восьми собственных символов. Теперь немного подробнее, для отображения символов, модуль LCD1602A содержит 32 ячейки, каждая из этих ячеек, содержит восемь строк и пять столбцов (5х8). Наглядно можно приставить, как таблицу из 8 на 5 точек, если в любой точке таблицы мы укажем единицу, точка будет светится, если ноль нет.

Русские символы на LCD1602А

Ниже продемонстрирован небольшой кусок кода, точно такой же как и в основном примере отличие только в написание.

Подключение LCD1602А к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
► Интерфейсный модуль IIC, I2C, TWI для LCD x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Описание:
Сразу оговорюсь, данный пример позволяет немного решить проблему с написанием русского текста на LCD1602A. Подключаем Arduino UNO и LCD1602A по интерфейсу I2C с помощью проводов, SCL к выводу 5 (Arduino), SDA к выводу 4 (Arduino) и конечно же питание, открываем среду разработки и загружаем данный скетч в плату Arduino UNO

  Скачать программу: пример 1 (в статье)
  Скачать программу: пример 2 (минимизированная)

Так как есть одинаковые буквы российского и англиканского алфавита, такие как E, T, O, P, A, H, K, C, B, M, остается добавить недостающие Б, Г, Д, Ж, З, И, Й, Л, П, У, Ф, Ц, Ч, Ш, Щ, Ь, Ы, Ю, Я. Все недостающие буквы российского алфавита, уже нарисованы и доступны в скетче, в строке 37 и 38 регистрируем символы «/1» и «/2», в строке 46 мы отображаем символ за писаный как «/1». Для наглядности, вывод символом указал отдельно (в новой строке), можно минимизировать:

Вот принципе и все, что хотел сказать

Ссылки
  Библиотека LiquidCrystal_I2C
  Документация к LCD1602A

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  LCD-дисплей 1602A

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  LCD-дисплей 1602A

12 комментариев для “Русские символы на LCD1602А”
  1. Подскажите пожалуйста, по какой причине любой 8 собственный символ отображается цифрой символа, либо «0»

  2. «Подскажите пожалуйста, по какой причине любой 8 собственный символ отображается цифрой символа, либо «0»»
    Потому что отсчет идет от нуля. Т.е надо:
    lcd.createChar(0, bukva_A); lcd.print(\0); // первый
    lcd.createChar(7, bukva_Ya); lcd.print(\7); // восьмой

  3. Здравствуйте!
    В таких индикаторах есть латиница и альтернративный, так вот альтернативный часто и есть русский.
    Только вот вопрос как сделать чтобы по команде lcd.print («Привет Мир!») ; выводился все же русский, а не абракодабра?
    Может есть какие-то библиотеки конвертации?
    Заранее Спасибо!

    1. Добрый день,
      В LCD1602A нет кодировки с кирилицей. Существуют дисплеи с уже загруженной кириллицей, например WH1602B.
      При написание статьи была одна библиотека.

  4. Здравствуйте, подскажите, возможен ли вывод многострочного текста на двухстрочный дисплей?

  5. да, друг… чегой-то ты напортачил, если заменить букву ну например Щ на 13 , то сразу же кракрзябра, число двойное путает, записываешь цифрой а не числом — всё норм. или я что не пойму?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *