Приветствую всех ардуинофобов и ардуинофилов LCD1602 - один из самых популярных дисплеев из-за его дешевизны и простоты использования. Неприятность заключается в том, что нельзя выводить абы какие символы на дисплей, можно только те что уже вшиты в него на заводе. Обычно встречаются дисплеи с вшитыми китайскими и английскими буквами и цифрами. Существуют дисплеи с вшитой кириллицей (обозначаются маркировкой CT или CP), но их сложнее найти, а стоят они дороже. Этим постом предлагаем решение проблемы. Создатели дисплея любезно позаботились о нас и оставили 8 пустых ячеек в дисплее куда можно записать свои символы. Вот в эти 8 ячеек мы и засунули 33 буквы русского алфавита, а за одно и переписали цифры и знаки препинания, чтобы всё было в едином стиле. Качаем библиотеку BigRus1602 и добавляем ее в Arduino IDE. Прежде чем начинать кодировать расскажу об ограничениях и возможностях библиотеки. Тестирование проходило на LCD Keypad Shield. С экранами работающими по I2c скорее всего не заработает. Просто не было I2c дисплея под рукой чтобы допилить код под него. Основное отличие от других библиотек и экрана со вшитыми кириилическими символами - очень крупный шрифт. Библиотека принимает данные типа byte, int, long и массив char[]. Доступные для вывода на экран символы: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ 1234567890 !?-.,:; Есть 2 встроенных шрифта: Strong и Smooth. Библиотека BigRus1602 работает с опорой на стандартную библиотеку liquid crystal. По умолчанию она уже встроена в Arduino IDE, делать ничего не нужно. Минимальный пример Код (C++): // В этом примере текст прокручивается по экрану слева направо #include "BigRus1602.h" char text[] = " АЛХИМИЯ"; // обязательно заглавные буквы //Пины для подключения LCD Keypad Shield const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); BigRus1602 lcdRus(&lcd); void setup() { lcdRus.begin(); lcdRus.scrollText(true); // true включаетскроллингтекста. false выключает lcdRus.print(text); // выводим текст на экран единожды } void loop() { } Изменяем скорость скроллинга Код (C++): //Scroll speed #include "BigRus1602.h" char textSlow[] = " МЕДЛЕННО"; char textFast[] = " БЫСТРО"; //Пины для подключения LCD Keypad Shield const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); BigRus1602 lcdRus(&lcd); void setup() { lcdRus.begin(); } void loop() { //второй аргумент - временной интервал между сдвигами, вводить его не обязательно(по умолчанию 1000 мс) lcdRus.scrollText(true, 500); lcdRus.print(textFast); lcdRus.scrollText(true, 1000); lcdRus.print(textSlow); } Объединяем несколько слов и выводим на экран Код (C++): //Sequence of words #include "BigRus1602.h" const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); BigRus1602 lcdRus(&lcd); void setup() { lcdRus.begin(); for (uint8_t i = 0; i <= 100; i++) //имитируемзагрузку { lcdRus.print(i); lcd.setCursor(lcdRus.getCarret(), 1); lcd.print("% "); delay(50); } delay(3000); } void loop() { lcd.clear(); for (uint8_t min = 0; min < 30; min++) { for (uint8_t sec = 0; sec < 60; sec++) { lcdRus.print(min); lcdRus.print(":", lcdRus.getCarret() -1); lcdRus.print(sec, lcdRus.getCarret() -1); //заполним "хвост" строки пробелами чтобы избежать появления артефактов от старого текста. Можно заменить на lcd.clear() lcdRus.print(" ", lcdRus.getCarret() -1); delay(1000); } } } В библиотеке доступно два шрифта: Strong и Smooth. Чтобы выбрать один из них откройте файл BigRus1602Font.h. Путь к этому файлу выглядит примерно так C:\Users\Admin\Documents\Arduino\libraries\BigRus1602\ В указанном файле нужно раскомментированую одну из строк. Остальные строки должны быть закомментированы. Если нужно сэкономить память контроллера, оставьте раскомментированым только строку BC_ONLY_NUMBER Код (C++): //#define BC_STRONG_FONT //угловатые буквы и цифры #defineBC_SMOOTH_FONT //скругленные буквы и цифры //#define BC_ONLY_NUMBER //только цифры (для экономии памяти) Больше примеров есть в папке Example. Библиотека написана программистом - любителем для экономии вашего времени. Посмотрите ролик о том, как проходило создание библиотеки.