Кириллица на LCD2004
- Войдите на сайт для отправки комментариев
Ср, 19/09/2018 - 22:40
Всем привет! Как только я ни пытался, но вывести русский текст на lcd2004 по i2c не получается, библиотека liqudcristalrus с i2c не работает. А liquidcristalrus_i2c вообще отказалась работать. При попытке нарисовать свой символ, вместо него выводит 8 параллельных строчек по 5 точек. Что модно с этим сделать? Это дисплей не поддерживает или я что-то не так делаю?
Второе.
Скорее второе, чем первое. Без дополнительных вводных - точнее не сказать.
Однозначно второе.
Ясно, чуть позже скину код
Не надо скидывать код.
Напишите маленький скетч с загрузкой одного пользовательского символа и его выводом на дисплей.
#include <LiquidCrystalRus_I2C.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> LiquidCrystalRus_I2C lcd(0x27, 20, 4); void setup() { lcd.init(); //инициализация lcd.backlight(); //подсветка (с некоторыми экранами не обязательно) //вывести текст-подсказку lcd.print("пишите текст"); lcd.setCursor(1, 1); lcd.print("в монитор порта"); Serial.begin(9600); //инициализация ком-порта } void loop() { //если пришли данные if (Serial.available()) { //немного ждём, что бы пришёл весь текст delay(100); //очищаем экран lcd.clear(); lcd.setCursor(0, 0); //читаем посимвольно текст while (Serial.available() > 0) { //читаем символ(в т.ч. русский) и выводим на экран lcd.print(lcd.asciiutf8(Serial.read())); } } }Это пример из библиотеки. Первые символы выводятся кракозябрами, а если в монитор порта начать печатать алфавит, то он отображается корректно.
lcd.print(lcd.asciiutf8(Serial.read())); //Это работает lcd.print(lcd.asciiutf8("Привет!")); //Это не работаетhttps://github.com/vannhack/Arduino/tree/master/libraries/LiquidCrystalR...
Судя по библиотеке в команде lcd.asciiutf8(); должна быть переменная unsigned char. Если это так, то как преобразовать переменную в этот тип?