• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32 + winstar 1602 + кириллица

ieremeev03

New member
Всем привет! Есть у кого то положительный опыт использования esp32 и дисплея формата 1602 с русскими символами? Дисплей подключен через PCF8574T по i2c.

Бьюсь над проблемой уже который день. Использую Arduino IDE и стандартную библиотеку LiquidCrystal_I2C. Суть проблемы в том, что когда я в лупе вывожу текст на экран, то в какой то момент, он выводится иероглифами (как на фото)

С текстом написанным английскими символами проблем нет, работает корректно. Но как только появляются русские символы, то начинаются лаги. Сам дисплей поддерживает русские символы в своей таблице символов.

Прикладываю три фото:

1 фото - Вывод первого экрана
5 сек задержка
2 фото - вывод второго экрана
5 сек задержка
3 фото - видно что начались глюки вместо вывода первого экрана


Вот кусок простейшего кода:

Код:
#define I2C_DISPLAY_ADR 0x27
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

int lines = 2;
int chars = 16;


LiquidCrystal_I2C lcd(I2C_DISPLAY_ADR, chars, lines);
int coin = 15;
int temp = 15;
float liters = 4.6;
float price = 3.0;


void setup() {
  Serial.begin(115200);
  lcd.begin();                     
  lcd.backlight();

}

void loop() {
  String msg;

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("\xA8\xB8\xBF\xC4""e""\xB3""a""\xC7");

  lcd.setCursor(0,1);
  lcd.print("t ""\xB3""o""\xE3\xC3");

  delay(5000);
  
  coin = random(1, 60);

  static char outstr[15];

  dtostrf(coin,7, 1, outstr);
  lcd.setCursor(0,0);
  lcd.print("\xA0""a""\xBB""a""\xBD""c:");
  lcd.print(outstr);
  lcd.print("p");

  float L = (coin)/price;
  dtostrf(L,5, 1, outstr);

  lcd.setCursor(0,1);
  lcd.print("\xE0""oc""\xBF""y""\xBE\xBD""o:");
  lcd.print(outstr);
  lcd.print("\xBB");

 
  delay(5000);
 

}
 

Вложения

Сверху Снизу