Приветствую всех ардуинофобов и ардуинофилов)
LCD1602 - один из самых популярных дисплеев из-за его дешевизны и простоты использования. Неприятность заключается в том, что нельзя выводить абы какие символы на дисплей, можно только те что уже вшиты в него на заводе. Обычно встречаются дисплеи с вшитыми китайскими и английскими буквами и цифрами. Существуют дисплеи с вшитой кириллицей (обозначаются маркировкой CT или CP), но их сложнее найти, а стоят они дороже. Этим постом предлагаем решение проблемы.
Создатели дисплея любезно позаботились о нас и оставили 8 пустых ячеек в дисплее куда можно записать свои символы. Вот в эти 8 ячеек мы и засунули 33 буквы русского алфавита, а за одно и переписали цифры и знаки препинания, чтобы всё было в едином стиле.

Демонстрацию шрифта смотрите здесь https://youtu.be/9fWbCSm7FrE
или здесь https://static.wixstatic.com/media/22baca_e1608d16f7db4b36a9f4485659c53e29~mv2.gif

Качаем библиотеку BigRus1602 и добавляем ее в Arduino IDE.
Прежде чем начинать кодировать расскажу об ограничениях и возможностях библиотеки. Тестирование проходило на LCD Keypad Shield. С экранами работающими по I2c скорее всего не заработает. Просто не было I2c дисплея под рукой чтобы допилить код под него.
Основное отличие от других библиотек и экрана со вшитыми кириилическими символами - очень крупный шрифт. Библиотека принимает данные типа byte, int, long и массив char[].
Доступные для вывода на экран символы: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ 1234567890 !?-.,:;
Есть 2 встроенных шрифта: Strong и Smooth
Библиотека BigRus1602 работает с опорой на стандартную библиотеку liquid crystal. По умолчанию она уже встроена в Arduino IDE, делать ничего не нужно.
Минимальный пример
02 | #include "BigRus1602.h" |
04 | char text[] = " АЛХИМИЯ" ; |
07 | const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; |
08 | LiquidCrystal lcd(rs, en, d4, d5, d6, d7); |
09 | BigRus1602 lcdRus(&lcd); |
15 | lcdRus.scrollText( true ); |
Изменяем скорость скроллинга
02 | #include "BigRus1602.h" |
04 | char textSlow[] = " МЕДЛЕННО" ; |
05 | char textFast[] = " БЫСТРО" ; |
08 | const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; |
09 | LiquidCrystal lcd(rs, en, d4, d5, d6, d7); |
10 | BigRus1602 lcdRus(&lcd); |
20 | lcdRus.scrollText( true , 500); |
21 | lcdRus.print(textFast); |
23 | lcdRus.scrollText( true , 1000); |
24 | lcdRus.print(textSlow); |
Объединяем несколько слов и выводим на экран
02 | #include "BigRus1602.h" |
04 | const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; |
05 | LiquidCrystal lcd(rs, en, d4, d5, d6, d7); |
06 | BigRus1602 lcdRus(&lcd); |
12 | for (uint8_t i = 0; i <= 100; i++) |
15 | lcd.setCursor(lcdRus.getCarret(), 1); |
25 | for (uint8_t min = 0; min < 30; min++) |
27 | for (uint8_t sec = 0; sec < 60; sec++) |
30 | lcdRus.print( ":" , lcdRus.getCarret() -1); |
31 | lcdRus.print(sec, lcdRus.getCarret() -1); |
34 | lcdRus.print( " " , lcdRus.getCarret() -1); |
В библиотеке доступно два шрифта: Strong и Smooth. Чтобы выбрать один из них откройте файл BigRus1602Font.h. Путь к этому файлу выглядит примерно так C:\Users\Admin\Documents\Arduino\libraries\BigRus1602\ В указанном файле нужно раскомментированую одну из строк. Остальные строки должны быть закомментированы.
Если нужно сэкономить память контроллера, оставьте раскомментированым только строку BC_ONLY_NUMBER
2 | #defineBC_SMOOTH_FONT //скругленные буквы и цифры |
Больше примеров есть в папке Example.
Библиотека написана программистом - любителем для экономии вашего времени.
Посмотрите ролик о том, как проходило создание библиотеки.
https://youtu.be/uDgAmcOfXY4
Это бы надо в Проекты перетащить.
Я сильно сомневаюсь в том, что кому то может понадобится вывод трёх букв жирным шрифтом на дисплей.
четырёх! ))
Technomagic - куда Катю дели? Почему ее нет в видео? она ваш главный ресурс для успеха на Ютубе, без нее тут и смотреть не на что :)
А вот зато с ней я готов слушать о чем угодно - о шрифтах, о бурях на марсе, да хоть о чистке септиков :)
:-)
https://www.instructables.com/BIG-Alpha-numeric-DISPLAY/
Даёшь "многодисплейные экраны" - много и разных!
Есть два варианта использования:
1. В Режиме бегущей строки
2. Режим часов или таймера в виде ЧЧ:ММ, такого экрана как раз достатчно
Есть два варианта использования:
1. В Режиме бегущей строки
2. Режим часов или таймера в виде ЧЧ:ММ, такого экрана как раз достатчно
Для ЧМ:ММ есть BigNumbers.h
А бегущая строка из 4 знаков , это бред.
К тому же она будет не плавно , а сразу на 1/4 экрана шагать.
Работа в никуда одним словом.
Technomagic - куда Катю дели? Почему ее нет в видео? она ваш главный ресурс для успеха на Ютубе, без нее тут и смотреть не на что :)
А вот зато с ней я готов слушать о чем угодно - о шрифтах, о бурях на марсе, да хоть о чистке септиков :)
Уже готовятся 2 новых ролика с участием Кати :)
Постараемся снизить уровень занудства в следующих выпусках)
Есть два варианта использования:
1. В Режиме бегущей строки
2. Режим часов или таймера в виде ЧЧ:ММ, такого экрана как раз достатчно
Шагает плавно, на 1/16 экрана, посмотрите демонстрацию) https://youtu.be/9fWbCSm7FrE
Посмотрел.
Абсолютно не читаемо.
Возможно показалось, но 8 символов не хватает и временами идёт наложение сопровождаемое мерцанием.
На всякий случай: символ полной штриховки вроде есть в наборах шрифтов.
временами идёт наложение сопровождаемое мерцанием..
Мерцание есть на видео, в живую оно отсутствует
2. Режим часов или таймера в виде ЧЧ:ММ, такого экрана как раз достатчно
Ни разу не новость )) - http://arduino.ru/forum/proekty/eshche-odni-chasy-na-lcd1602-s-krupnymi-tsiframi
куда Катю дели? Почему ее нет в видео?
Что за Катя, почему не знаю?
куда Катю дели? Почему ее нет в видео?
Что за Катя, почему не знаю?
https://www.youtube.com/watch?v=6AjMIHM4uXA
2. Режим часов или таймера в виде ЧЧ:ММ, такого экрана как раз достатчно
Ни разу не новость )) - http://arduino.ru/forum/proekty/eshche-odni-chasy-na-lcd1602-s-krupnymi-tsiframi
:-)
Особенно понравилось -"Что бы вы ни делали на Ардуино, все равно получаются или часы, или метеостанция"
Ещё раз вчитался в тему "как вывести на экран 1602 свой массив пикселей 32*5*8" и понял что никак :-)
Ещё раз вчитался в тему "как вывести на экран 1602 свой массив пикселей 32*5*8" и понял что никак :-)
Могу посоветовать только скачать генератор пикселей, в котором будет видно сразу весь массив пикселей 32х5х8. Генератор просто переводит клацание мышкой по пикселям в байт-код пригодный для контроллера.
https://youtu.be/eSnQn7cJNiU вот так он выглядит.
Здесь можно скачать его, в самом низу страницу ссылка.
Это всё полезно, но в целом дисплей не позволяет одновременно пользоваться всей своей площадью при выводе графической информации, уступая по всем параметрам кроме размеров ssd1306 :-)
Это всё полезно, но в целом дисплей не позволяет одновременно пользоваться всей своей площадью при выводе графической информации, уступая по всем параметрам кроме размеров ssd1306 :-)
А использовать графический (по назначению!) не судьба?
Да и текст тоже толком, ни шрифта, ни половину шрифта своего.
:-)
Вообще удивительно, что китайцы его делают по "такой схеме", у самих около 50000 символов для написания имеется.