Основний і найбільш зручною бібліотекою для роботи з LCD пиксельними дисплеями є бібліотека Adafruit GFX.
Дана бібліотека чисто графічна, тому для роботи з певною моделлю дисплея разом з нею варто використовувати ще одну спеціалізовану бібліотеку.
Наприклад, для Nokia 5110 дисплея це Adafruit-PCD8544. Для OLED 0.96 "OLED 128x64 - Adafruit_SSD1306. Бібліотеки для інших моделей можна знайти тут (або тут: список).
Отже, ви підключили свій дисплей, в скетчі додали дві бібліотеки, про які йшла мова вище і пробуєте вивести російські літери. Але ось невдача - замість них ваш дисплей відображає всякі кракозябри. Це відбувається тому, що в бібліотеках від Adafruit немає російського шрифту. Додати його зовсім не складно. Потрібно замінити в файлі glcdfont.c з бібліотеки Adafruit GFX певні символи на російські належним кодуванням. Однак, шрифт розрахований на однобайтном кодування букв, а Arduino IDE використовує для російських букв двухбайтового UTF-8,
У російській кодуванні UTF-8 простежується певна закономірність, яка дозволяє нехитрим чином перетворювати з UTF-8 в однобайтових російську кодування Windows-1251, яка і була обрана для заміни букв.
Функція utf8rus () отримує вихідну рядок, символи з кодами 0x00-0xBF пропускає без зміни у вихідний рядок, а в решти кодах відбирає російські букви і перекодовує їх.
Функція перекодування російських букв з UTF-8 в Win-1251
Таким чином, для русифікації вашого дисплея необхідно:
- завантажити будь-який з наведених нижче (або вище) архівів;
- замінити файл glcdfont.c в Adafruit-GFX на ось цей;
- додати функцію utf8rus () в скетч;
- вставити на початку скетчу команду: display.cp437 (true);
Застосовувати функцію utf8rus () можна всередині команд друку рядків:
display.println (utf8rus ( "Тест"));
Приклади для різних дисплеїв
Nokia 5110 (PCD8544)