Уроки / Урок 6

Русский текст

Кириллические шрифты и UTF-8 на маленьком экране.

Функция drawStr() понимает только латиницу. Для русского текста включите UTF-8 и выберите шрифт с кириллицей — у таких в названии есть cyrillic.

#include <U8g2lib.h>
#include <Wire.h>

// Встроенный экран 0.42": контроллер SSD1306, видимая область 72×40.
// Аргументы: поворот, вывод сброса (нет), SCL = GPIO6, SDA = GPIO5.
U8G2_SSD1306_72X40_ER_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 6, 5);

void setup() {
  u8g2.begin();
  u8g2.enableUTF8Print();
}

void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_6x13_t_cyrillic);
  u8g2.setCursor(0, 11);
  u8g2.print("Привет!");
  u8g2.setCursor(0, 24);
  u8g2.print("Я ESP32-C3");
  u8g2.setCursor(0, 37);
  u8g2.print(millis() / 1000);
  u8g2.print(" сек");
  u8g2.sendBuffer();
  delay(200);
}

В шрифт 6×13 по ширине помещается 12 символов, а по высоте — 3 строки.

Другие шрифты с кириллицей: u8g2_font_5x8_t_cyrillic (мельче, 4 строки), u8g2_font_8x13_t_cyrillic (крупнее, 9 символов в строке).